Saya telah ditugaskan di perguruan tinggi saya untuk membuat sebuah karya tanpa persiapan apapun dan saya tidak tahu bagaimana menggunakan JSON dengan benar untuk membaca ini:

{ "af": [
 ["a", "b", "0", "1"],
 ["0", "1"],
 [ ["a","#","0"], [a,0,b], [a, 1, a], ["b", 0,"a"], ["b", "1", "b"], ["0", "0", "0"], ["0", "1", "1"], [1,0,1], [1 ,1, 0] ]
 ["a"],
 ["1"]
 ]
}

Saya sudah mencoba mencari beberapa contoh di internet tetapi tidak tahu cara menggunakan ini. Saya mencoba membuat tugas ini dengan Java dan saya menggunakan perpustakaan Json json-simple. Bisakah seseorang membantu saya? Seperti benar-benar tidak ada petunjuk. Saya akan terus mencari lebih banyak contoh.

Terutama masalah saya adalah bahwa untuk "memiliki" bagian dari json ini saya harus menggunakan jsonObject.get("nama barang"); tetapi satu-satunya nama yang harus saya gunakan dalam fungsi ini adalah "af" ... apakah itu Daftar? aku agak terjebak di sini.

0
Malakyas 13 Oktober 2017, 02:06

2 jawaban

Teks json Anda tidak valid, karena berisi kunci/nilai yang tidak dikutip.

Anda memiliki dua cara untuk bekerja dengan teks json yang diformat buruk ini:

Pertama

Anda harus terlebih dahulu mengubah json Anda menjadi json yang valid sehingga setiap karakter atau string harus ditempatkan dalam tanda kutip ganda. yaitu

Ini tidak valid : [a, 1 ,b]

Yang ini valid: ["a", 1, "c"]

catatan: karakter yang saya sebutkan adalah apa saja kecuali angka

Maka Anda dapat memanggil jsonArray.getJsonArray(n).getJsonArray(m) secara rekursif untuk mendapatkan array bersarang di mana n dan m adalah indeks.

Kedua

Gunakan fitur Jackson Core Library seperti ALLOW_UNQUOTED_FIELD_NAMES yang memungkinkan Anda untuk mengurai teks json yang tidak dikutip dengan baik. lihat juga jawaban ini

1
Community 20 Juni 2020, 12:12

af adalah larik json, jadi Anda mungkin harus menggunakan jsonObject.getJsonArray("af"). Itu akan memberi Anda objek JsonArray yang dapat Anda baca menggunakan sesuatu seperti jsonArray.getJsonArray(0).getString(0) (Anda mungkin perlu mengetahui tipe nilai saat runtime dengan JsonValue.getValueType).

0
Imperishable Night 13 Oktober 2017, 02:16
Wow tnks, itu sebenarnya, sangat membantu banyak pria, tnks nyata saya akan mencoba menjalankannya di sini dan mendapatkan tipe nilainya.
 – 
Malakyas
13 Oktober 2017, 02:18
Perpustakaan mana yang Anda gunakan?
 – 
Malakyas
13 Oktober 2017, 03:09