首页  >  文章  >  Java  >  如何使用 Jackson JSON 将 JSON 字符串转换为地图?

如何使用 Jackson JSON 将 JSON 字符串转换为地图?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-30 16:59:26701浏览

How to Convert JSON Strings to Maps with Jackson JSON?

使用 Jackson JSON 将 JSON 字符串转换为地图

Jackson JSON 是一个流行的 Java 库,用于将 JSON 字符串转换为各种数据结构。但是,在尝试将 JSON 转换为 Map 时遇到未经检查的分配错误。可能会令人沮丧。

要解决此问题,请按照以下步骤操作:

  1. 使用类型引用:

    <code class="java">TypeReference<HashMap<String, String>> typeRef
            = new TypeReference<HashMap<String, String>>() {};
    
    HashMap<String, String> propertyMap = mapper.readValue(properties, typeRef);</code>
  2. 使用通用 JsonNode:

    <code class="java">JsonNode rootNode = mapper.readTree(properties);
    
    if (rootNode.isObject()) {
        Map<String, String> propertyMap = new HashMap<>();
        rootNode.fields().forEachRemaining(field -> propertyMap.put(field.getKey(), field.getValue().asText()));
    }</code>

对于原生 Java JSON 转换,您可以探索 JSON.org。此外,以下是如何在 Jackson 中实现类似的 JSON 解码功能:

<code class="java">ObjectNode albumList = mapper.createObjectNode();

ArrayNode albums = mapper.createArrayNode();
albums.add(mapper.createObjectNode().put("title", "Album 1"));
albums.add(mapper.createObjectNode().put("title", "Album 2"));

albumList.put("albums", albums);

System.out.println(albumList);</code>

这会生成一个带有专辑数组的 JSON 对象,提供与 PHP 的 json_decode($str) 相同的功能。

以上是如何使用 Jackson JSON 将 JSON 字符串转换为地图?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn