Rumah >Java >javaTutorial >Bagaimanakah anda menukar rentetan JSON kepada HashMaps di Java menggunakan perpustakaan org.json dan Jackson?
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
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; }
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);
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!