我已經完成了幾輪JSON解析,但這是我從來沒有來過的東西。我們將如何解析這種json數組?Android- GSON如何用不同的數據解析JSON數組?
[{
"about": "xyz ",
"id": "cda",
"username": "ps"
}, {
"description": "this is sample response",
"id": "ahhj",
}]
我已經完成了幾輪JSON解析,但這是我從來沒有來過的東西。我們將如何解析這種json數組?Android- GSON如何用不同的數據解析JSON數組?
[{
"about": "xyz ",
"id": "cda",
"username": "ps"
}, {
"description": "this is sample response",
"id": "ahhj",
}]
也許this答案可能會有所幫助。
基本上你應該迭代每個JSON對象並使用GSON方法來獲得所有的鍵。然後你可以迭代每個鍵並使用鍵獲取值。
使用jsonObject.had(「key」)來知道這個鍵是否存在於這個jsonObject中。所以你可以通過它的唯一鍵識別你的對象,如你的例子: 如果對象有關鍵,所以它就像第一個對象,如果它有描述它是第二個。確保迭代JsonArray中的所有JsonObject
我可能將它反序列化爲Map<String,String>[]
,或者如果您期待其他數據類型爲值Map<String, Object>[]
並按需要按此方式遍歷它。
你的Json結果是一個具有數據數組的JsonObject。 改變像下面的結果數據:
"data":{[
{
"about": "xyz ",
"id": "cda",
"username": "ps"
},
{
"description": "this is sample response",
"id": "ahhj",
}
]}
然後做出模型類的這一點,並使用GSON。如果你有任何問題再問一次。
很明顯,您的json不是同類數據的列表。因此,不能轉換爲List。
所以,我想在你的鞋子了一段時間,並創建了一個JSON
[{"name":"dave","clazz":"V"},{"token":"VIW","type":"dexter"}]
,最好的方法,我能想出
1:將其轉換爲JsonArray
JSONArray jsonArray = new JSONArray(json);
2:因爲數組中的每個對象都可以是唯一類型,所以直到您非常確定將它保留爲JsonObject並不是什麼壞主意。
JsonObject jsonObject = jsonArray.getJSONObject(0);
String token = jsonObject.getString("token");
3:對於你確定你有一個模型(POJO)的情況下,你可以定義類似的東西。
MyPojo myPojo = new Gson().fromJson(jsonArray.getJSONObject(0).toString(), MyPojo.class);
希望我幫了忙!沒有!你怎麼告訴我我做錯了什麼。 :)