Rumah >Java >javaTutorial >Bagaimana untuk Menukar Rentetan JSON kepada Peta dengan Jackson JSON?

Bagaimana untuk Menukar Rentetan JSON kepada Peta dengan Jackson JSON?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 16:59:26781semak imbas

How to Convert JSON Strings to Maps with Jackson JSON?

Menukar Rentetan JSON kepada Peta dengan Jackson JSON

Jackson JSON ialah perpustakaan Java yang popular untuk menukar rentetan JSON kepada pelbagai struktur data. Walau bagaimanapun, menghadapi ralat tugasan yang tidak ditandai semasa cuba menukar JSON kepada Map boleh mengecewakan.

Untuk menyelesaikan isu ini, ikut langkah berikut:

  1. Gunakan TypeReference:

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

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

Untuk penukaran JSON Java asli, anda boleh meneroka JSON.org. Di samping itu, berikut ialah cara untuk mencapai fungsi penyahkodan JSON yang serupa dalam 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>

Ini menjana objek JSON dengan tatasusunan album, menyediakan fungsi yang sama seperti json_decode($str) PHP.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan JSON kepada Peta dengan Jackson JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn