Saya mengunduh string JSON dan mengonversinya menjadi JSONArray. Saya memasukkannya ke listview dan harus dapat menghapus dari listview itu nanti, dan karena JSONArray tidak memiliki metode .remove (Terima kasih Obama), saya mencoba mengubahnya menjadi arraylist.
ini JSON saya (the array.toString ()):
[{"thumb_url":"tb-1370913834.jpg","event_id":"15","count":"44","event_tagline":"this is a tagline","event_name":"5th birthday","event_end":"1370919600","event_start":"1370876400"}]
Saya perlu memasukkannya ke dalam array dan dapat memanggil string dengan kunci masing-masing. Hargai bantuan apapun!
android
android-listview
TheGeekNess
sumber
sumber
Jawaban:
sumber
listdata.add(jArray.optJSONObject(i));
jika listdata Anda adalah arrayList JSONObject.ArrayList<JSONObject> listdata = new ArrayList<JSONObject>();
ArrayList<Object>
?Saya telah melakukannya dengan menggunakan
Gson
(oleh Google) .Tambahkan baris berikut ke modul Anda
build.gradle
:JSON
tali:ContactModel.java
:Kode untuk mengonversi string JSON menjadi
ArrayList<Model>
:Catatan: Anda harus mengimpor
java.lang.reflect.Type;
:Semoga ini bisa membantu Anda.
sumber
getAsJsonArray()
metode tersebut secara nyata. Terima kasih!coba cara ini Cukup putar melalui itu, buat array Anda sendiri. Kode ini mengasumsikan itu adalah larik string, seharusnya tidak sulit untuk dimodifikasi agar sesuai dengan struktur larik khusus Anda.
sumber
Alih-alih mengonversi string JSON menjadi ArrayList atau bahkan Map, Anda bisa membuat JSONObject itu sendiri. Objek ini memiliki kemampuan untuk mendapatkan nilai string dengan kunci , seperti yang Anda inginkan dan juga untuk menghapus objek .
Untuk membuat
JSONObject
dari string JSON yang diformat dengan benar, Anda cukup memanggil konstruktor yang sesuai .sumber
Saya punya solusi cepat. Buat saja file
ArrayUtil.java
Pemakaian:
atau
sumber
ArrayList<String>
JSONArray
ke daftar sehingga saya bisa menempatkanList
dalamHashMap
, sehingga util ini bekerja untuk saya cukup baik. Terima kasih @Vasilii SuricovDi Jawa 8,
sumber
List<String> listOfStrings = IntStream.range(0, array.length()).mapToObj(i -> { try { return array.getString(i); } catch (JSONException e) { throw new AssertionFailedError("JSONArray is not a list of Strings! " + e.getMessage()); } }).collect(Collectors.toList());
yang tidak elegan lagi. Jadi saya akan pergi dengan foreach :)sumber
Untuk membuatnya praktis, gunakan POJO.
coba seperti ini ..
sumber
Menggunakan Gson
sumber
Jika Anda ingin mengekstrak data dari string array JSON, berikut adalah kode kerja saya. ubah parameter sebagai data Anda.
Kelas PoJo
Ekstrak data Anda menggunakan baris kode di bawah ini
itu akan mengembalikan Anda Daftar objek kelas PoJo.
sumber
Gaya Java 8
sumber
sumber
Saya punya solusi cepat. Buat saja file
ArrayUtil.java
Pemakaian:
atau
sumber
Varian umum
sumber
@tokopedia
sumber
Hanya mengikuti subjek asli utas:
mengonversi jsonarray ke list (gunakan jackson jsonarray dan object mapper di sini):
sumber
Alternatif Java 8 yang lebih sederhana:
sumber