Rumah >Java >javaTutorial >Bagaimana untuk Menukar Rentetan JSON kepada HashMaps dalam Java Menggunakan Perpustakaan org.json?
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!