Rumah >Java >javaTutorial >Bagaimana untuk Menukar String JSON ke HashMaps di Java?

Bagaimana untuk Menukar String JSON ke HashMaps di Java?

DDD
DDDasal
2024-12-04 10:02:12803semak imbas

How to Convert JSON Strings to HashMaps in Java?

Menukar JSON String kepada HashMaps dengan Java

Pengenalan
Bekerja dengan data JSON selalunya melibatkan keperluan untuk menghuraikan data ke dalam HashMap untuk manipulasi mudah. Di Java, seseorang boleh memanfaatkan pustaka org.json untuk tujuan ini.

Kaedah Rekursif
Kaedah ini berulang melalui objek JSON, menukar tatasusunan kepada senarai dan objek bersarang kepada HashMaps , sebelum menambahkannya pada HashMap terakhir.

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;
}
...

Kaedah Ganti: Perpustakaan Jackson
Sebagai alternatif, seseorang boleh menggunakan perpustakaan Jackson untuk pendekatan yang lebih mudah:

import com.fasterxml.jackson.databind.ObjectMapper;
...
Map<String, Object> mapping = new ObjectMapper().readValue(jsonStr, HashMap.class);
...

Contoh Penggunaan

Memandangkan sampel rentetan JSON :

{
"name" : "abc",
"email id " : ["email1@domain.com","email2@domain.com","email3@domain.com"]
}

Untuk menukarnya kepada HashMap menggunakan rekursif kaedah:

Map<String, Object> myMap = jsonToMap(new JSONObject(jsonStr));
...

Menggunakan perpustakaan Jackson:

Map<String, Object> myMap = new ObjectMapper().readValue(jsonStr, HashMap.class);
...

HashMap yang terhasil akan mengandungi data JSON yang dihuraikan, membolehkan akses dan manipulasi mudah.

Atas ialah kandungan terperinci Bagaimana untuk Menukar String JSON ke HashMaps di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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