Saya akan menerima JSON Object atau Array dari server, tetapi saya tidak tahu akan seperti apa. Saya perlu bekerja dengan JSON, tetapi untuk melakukannya, saya perlu tahu apakah itu Obyek atau Array.
Saya bekerja dengan Android.
Apakah ada yang punya cara bagus untuk melakukan ini?
Jawaban:
Saya menemukan cara yang lebih baik untuk menentukan:
tokenizer dapat mengembalikan lebih banyak jenis: http://developer.android.com/reference/org/json/JSONTokener.html#nextValue ()
sumber
JSONTokener
. Saya tidak melakukan itu, tapi saya kira Anda harus melewatkan Last ("your_key") . Tapi saya tidak yakin. Namun, Anda harus mempertimbangkan untuk menggunakan json mapper: Gson, Jackson, Moshi dan banyak lainnya.Ada beberapa cara Anda bisa melakukan ini:
{
, Anda berurusan denganJSONObject
, jika itu adalah[
, Anda berhadapan dengan aJSONArray
.Object
), maka Anda dapat melakukaninstanceof
pemeriksaan.yourObject instanceof JSONObject
. Ini akan mengembalikan true jika objek Anda adalah objek JSON. Hal yang sama berlaku untuk JSONArray.sumber
Ini adalah solusi sederhana yang saya gunakan di Android:
sumber
json.has("data")
seandainya semuanya opsional (tidak diminta).Menghadirkan cara lain:
Berikut
server_response
ini respons String yang berasal dari serversumber
Cara yang lebih mendasar untuk melakukan ini adalah sebagai berikut.
JsonArray
secara inheren DaftarJsonObject
pada dasarnya adalah Petasumber
contoh
Object.getClass (). GetName ()
sumber
Bagi mereka yang menangani masalah ini dalam JavaScript, berikut ini melakukan pekerjaan untuk saya (tidak yakin seberapa efisien itu).
sumber
Pendekatan saya akan menjadi abstraksi total dari ini. Mungkin seseorang menemukan ini berguna ...
Dan sekarang singkirkan perilaku ini selamanya ...
sumber