Rumah > Java > javaTutorial > Bagaimanakah saya boleh menukar Rentetan JSON kepada HashMap di Jawa?

Bagaimanakah saya boleh menukar Rentetan JSON kepada HashMap di Jawa?

Mary-Kate Olsen
Lepaskan: 2024-11-11 22:45:03
asal
215 orang telah melayarinya

How can I convert a JSON String to a HashMap in Java?

Menukar Rentetan JSON kepada HashMap dalam Java

Di Java, anda boleh menghadapi senario di mana anda perlu menyimpan data JSON dalam format data berstruktur dan boleh diakses. Satu pilihan yang mudah untuk ini ialah menggunakan HashMap, yang membolehkan anda memetakan kunci kepada nilai sepadannya.

Untuk menukar Rentetan JSON kepada HashMap, anda boleh memanfaatkan perpustakaan org.json. Berikut ialah coretan kod sampel yang menunjukkan proses secara rekursif:

public static Map<String, Object> jsonToMap(JSONObject json) throws JSONException {
    Map<String, Object> retMap = new HashMap<>();
    
    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<>();

    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<>();
    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;
}
Salin selepas log masuk

Dalam kod ini, kaedah jsonToMap memulakan HashMap dipanggil retMap dan menyemak sama ada input JSONObject bukan nol. Jika ia bukan nol, ia menggunakan kaedah toMap rekursif untuk menukar JSONObject kepada HashMap.

Kaedah toMap berulang ke atas kekunci dalam JSONObject dan mengekstrak nilai yang sepadan. Ia secara rekursif mengendalikan objek dan tatasusunan JSON bersarang, dengan berkesan menukar keseluruhan struktur JSON kepada HashMap.

Sebagai alternatif, jika anda lebih suka pendekatan bukan rekursif dan bekerja dengan perpustakaan Jackson, anda boleh menggunakan kod berikut:

import com.fasterxml.jackson.databind.ObjectMapper;

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

Pendekatan ini memudahkan proses penukaran dengan menggunakan kelas ObjectMapper perpustakaan Jackson, yang boleh menghuraikan Rentetan JSON secara terus ke dalam objek Java yang dikehendaki.

Dengan melaksanakan teknik ini, anda boleh menukar Rentetan JSON dengan berkesan ke dalam HashMaps di Java, memberikan anda struktur data yang fleksibel dan cekap untuk menyimpan dan mengurus data JSON.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar Rentetan JSON kepada HashMap di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan