Android-GSON如何解析具有不同数据的JSON数组?
我已经做了几轮JSON解析,但这是我从来没有听说过的。我们如何解析这种JSON数组Android-GSON如何解析具有不同数据的JSON数组?,android,arrays,json,android-volley,gson,Android,Arrays,Json,Android Volley,Gson,我已经做了几轮JSON解析,但这是我从来没有听说过的。我们如何解析这种JSON数组 [{ "about": "xyz ", "id": "cda", "username": "ps" }, { "description": "this is sample response", "id": "ahhj", }] 也许这个答案会有帮助 基本上,您应该迭代每个JSON对象,并使用GSON方法获取所有键。然后可以迭代每个键,并使用该键获取值 使用jsonObject.had(“key”)了解此jso
[{
"about": "xyz ",
"id": "cda",
"username": "ps"
}, {
"description": "this is sample response",
"id": "ahhj",
}]
也许这个答案会有帮助
基本上,您应该迭代每个JSON对象,并使用GSON方法获取所有键。然后可以迭代每个键,并使用该键获取值 使用jsonObject.had(“key”)了解此jsonObject是否存在此key。因此,您可以从对象的唯一键识别对象,如示例中所示:
如果对象有about键,那么它就像第一个对象,如果它有description,那么它就是第二个对象。确保迭代JsonArray中的所有JsonObject我可能会将其反序列化为一个
Map[]
,或者如果您希望其他数据类型作为值Map[]
,并根据需要以这种方式遍历它。您的Json结果将是一个具有数据数组的JsonObject。
JSONArray jsonArray = new JSONArray(json);
更改结果数据,如下所示:
"data":{[
{
"about": "xyz ",
"id": "cda",
"username": "ps"
},
{
"description": "this is sample response",
"id": "ahhj",
}
]}
然后创建一个模型类并使用GSON。如果您有任何问题,请再次询问。显然,您的json不是一个同质数据列表。因此,无法转换为列表 所以,我试着站在你的立场上,创建了一个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);
希望我能帮忙!不你能告诉我我做错了什么吗