Rumah >Java >javaTutorial >Bagaimana untuk Menukar Rentetan JSON kepada HashMaps dalam Java Menggunakan Perpustakaan org.json?

Bagaimana untuk Menukar Rentetan JSON kepada HashMaps dalam Java Menggunakan Perpustakaan org.json?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-13 14:03:021102semak imbas

How to Convert JSON Strings to HashMaps in Java Using the org.json Library?

Menukar Rentetan JSON kepada HashMaps dalam Java Menggunakan Perpustakaan org.json

Apabila bekerja dengan data JSON di Java, tugas biasa adalah untuk tukar rentetan JSON ke HashMaps untuk memudahkan manipulasi dan penyimpanan data. Artikel ini memberikan penjelasan terperinci tentang cara untuk mencapai penukaran ini menggunakan perpustakaan org.json.

Struktur JSON

Pertimbangkan rentetan JSON berikut:

{
"name" : "abc",
"email id" : ["[email protected]", "[email protected]", "[email protected]"]
}

Matlamatnya adalah untuk menukar rentetan JSON ini kepada HashMap dengan kunci yang sepadan dengan nama dan nilai harta yang sepadan dengannya nilai masing-masing.

Permulaan HashMap

Mula-mula, mulakan HashMap untuk menyimpan data yang ditukar:

Map<string object> retMap = new HashMap<string object>();</string></string>

Penukaran Rekursif

Proses penukaran melibatkan melintasi secara rekursif Objek JSON dan menukar struktur bersarang juga. Coretan kod berikut menggariskan kaedah penukaran rekursif:

public static Map<string object> jsonToMap(JSONObject json) throws JSONException {
    Map<string object> retMap = new HashMap<string object>();

    if(json != JSONObject.NULL) {
        retMap = toMap(json);
    }
    return retMap;
}

public static Map<string object> toMap(JSONObject object) throws JSONException {
    Map<string object> map = new HashMap<string object>();

    Iterator<string> keysItr = object.keys();
    while(keysItr.hasNext()) {
        String key = keysItr.next();
        Object value = object.get(key);

        if(value instanceof JSONArray) {
            value = toList((JSONArray) value);
        }

        else if(value instanceof JSONObject) {
            value = toMap((JSONObject) value);
        }
        map.put(key, value);
    }
    return map;
}

public static List<object> toList(JSONArray array) throws JSONException {
    List<object> list = new ArrayList<object>();
    for(int i = 0; i <p>Kod ini secara rekursif melintasi objek JSON dan mengendalikan struktur bersarang, seperti tatasusunan dan objek, memastikan HashMap akhir mengandungi semua data dalam rentetan JSON .</p>
<p><strong>Menggunakan Jackson Perpustakaan</strong></p>
<p>Sebagai alternatif, anda boleh menggunakan perpustakaan Jackson untuk menukar rentetan JSON kepada HashMaps. Ini boleh dilakukan dengan kod berikut:</p>
<pre class="brush:php;toolbar:false">import com.fasterxml.jackson.databind.ObjectMapper;

Map<string object> mapping = new ObjectMapper().readValue(jsonStr, HashMap.class);</string>

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan JSON kepada HashMaps dalam Java Menggunakan Perpustakaan org.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