Rumah > Java > javaTutorial > Bagaimanakah anda menukar rentetan JSON kepada HashMaps di Java menggunakan perpustakaan org.json dan Jackson?

Bagaimanakah anda menukar rentetan JSON kepada HashMaps di Java menggunakan perpustakaan org.json dan Jackson?

Susan Sarandon
Lepaskan: 2024-11-12 06:41:01
asal
364 orang telah melayarinya

How do you convert JSON strings to HashMaps in Java using org.json and Jackson libraries?

Menukar Rentetan JSON kepada HashMaps dalam Java

Apabila bekerja dengan data dalam format JSON, menukarnya menjadi HashMap boleh menjadi cara yang berguna untuk menyimpan dan mengakses maklumat. Begini cara anda boleh mencapai penukaran ini menggunakan perpustakaan org.json.

Menggunakan Pustaka org.json

  1. Buat objek HashMap untuk menyimpan data yang ditukar.
  2. Hilangkan rentetan JSON menjadi a JSONObject.
  3. Lelar melalui kekunci dalam JSONObject.
  4. Untuk setiap kunci, dapatkan nilai yang sepadan daripada JSONObject.
  5. Tukar nilai kepada jenis yang sesuai (cth., Senaraikan, HashMap) jika perlu.
  6. Tambahkan pasangan nilai kunci pada HashMap.

Contoh Rekursif

Kod berikut menyediakan pelaksanaan rekursif yang mengendalikan struktur JSON bersarang:

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

Menggunakan Perpustakaan Jackson

Jika anda mahu, anda juga boleh menggunakan perpustakaan Jackson untuk Penghuraian JSON. Pendekatan ini lebih ringkas dan memerlukan lebih sedikit langkah:

import com.fasterxml.jackson.databind.ObjectMapper;

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

Atas ialah kandungan terperinci Bagaimanakah anda menukar rentetan JSON kepada HashMaps di Java menggunakan perpustakaan org.json dan Jackson?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan