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; }
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);
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!