Saya memiliki file JSON seperti ini:
[
{
"number": "3",
"title": "hello_world",
}, {
"number": "2",
"title": "hello_world",
}
]
Sebelumnya ketika file memiliki elemen root, saya akan menggunakan:
Wrapper w = gson.fromJson(JSONSTRING, Wrapper.class);
kode tetapi saya tidak bisa memikirkan cara membuat kode Wrapper
kelas karena elemen root adalah array.
Saya telah mencoba menggunakan:
Wrapper[] wrapper = gson.fromJson(jsonLine, Wrapper[].class);
dengan:
public class Wrapper{
String number;
String title;
}
Tapi belum beruntung. Bagaimana lagi saya bisa membaca ini menggunakan metode ini?
PS Saya telah mendapatkan ini untuk bekerja menggunakan:
JsonArray entries = (JsonArray) new JsonParser().parse(jsonLine);
String title = ((JsonObject)entries.get(0)).get("title");
Tetapi saya lebih suka mengetahui bagaimana melakukannya (jika mungkin) dengan kedua metode tersebut.
Wrapper[] data = gson.fromJson(jElement, Wrapper[].class);
berfungsi dengan baik untuk saya.Jawaban:
Masalah disebabkan oleh koma di akhir (dalam kasus Anda masing-masing ) objek JSON yang ditempatkan dalam larik:
Jika Anda menghapusnya, data Anda akan menjadi
dan
harus bekerja dengan baik.
sumber
jackson
perpustakaan dan komentar ini membuat array dan membungkusnya denganArrays.asList(..)
lebih cepat daripada membuat daftar menggunakan TypeRefence. Saya tidak mengujinya dengangson
perpustakaan tetapi mungkin layak untuk dijadikan tolok ukur.Sepertinya bekerja dengan baik. Tapi ada
,
koma ekstra di string Anda.sumber
contoh panggilan:
sumber
GsonUtils
adalah kelas tempat dia menerapkantoList()
metodenya sendiri .sumber