Rumah  >  Artikel  >  Java  >  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:02891semak 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>();

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 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 toMap(JSONObject object) throws JSONException {
    Map map = new HashMap();

    Iterator 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 toList(JSONArray array) throws JSONException {
    List list = new ArrayList();
    for(int i = 0; i < array.length(); i++) {
        Object value = array.get(i);
        if(value instanceof JSONArray) {
            value = toList((JSONArray) value);
        }

        else if(value instanceof JSONObject) {
            value = toMap((JSONObject) value);
        }
        list.add(value);
    }
    return list;
}

Kod ini secara rekursif melintasi objek JSON dan mengendalikan struktur bersarang, seperti tatasusunan dan objek, memastikan HashMap akhir mengandungi semua data dalam rentetan JSON .

Menggunakan Jackson Perpustakaan

Sebagai alternatif, anda boleh menggunakan perpustakaan Jackson untuk menukar rentetan JSON kepada HashMaps. Ini boleh dilakukan dengan kod berikut:

import com.fasterxml.jackson.databind.ObjectMapper;

Map<String, Object> mapping = new ObjectMapper().readValue(jsonStr, HashMap.class);

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