Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-GSON如何解析具有不同数据的JSON数组?_Android_Arrays_Json_Android Volley_Gson - Fatal编程技术网

Android-GSON如何解析具有不同数据的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

我已经做了几轮JSON解析,但这是我从来没有听说过的。我们如何解析这种JSON数组

 [{
"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);
希望我能帮忙!不你能告诉我我做错了什么吗