Home  >  Article  >  Java  >  How to Convert JSON Strings to Maps with Jackson JSON?

How to Convert JSON Strings to Maps with Jackson JSON?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 16:59:26701browse

How to Convert JSON Strings to Maps with Jackson JSON?

Converting JSON Strings to Maps with Jackson JSON

Jackson JSON is a popular Java library for converting JSON strings to various data structures. However, encountering an unchecked assignment error while attempting to convert JSON to a Map could be frustrating.

To resolve this issue, follow these steps:

  1. Use TypeReference:

    <code class="java">TypeReference<HashMap<String, String>> typeRef
            = new TypeReference<HashMap<String, String>>() {};
    
    HashMap<String, String> propertyMap = mapper.readValue(properties, typeRef);</code>
  2. Use Generic 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>

For native Java JSON conversion, you can explore JSON.org. In addition, here's how to achieve similar JSON decoding functionality in Jackson:

<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>

This generates a JSON object with an array of albums, providing the same functionality as PHP's json_decode($str).

The above is the detailed content of How to Convert JSON Strings to Maps with Jackson JSON?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn