Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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_Json_Gson_Android Json - Fatal编程技术网

Android Gson,尝试解析来自服务器的json响应时出错

Android Gson,尝试解析来自服务器的json响应时出错,android,json,gson,android-json,Android,Json,Gson,Android Json,Json有效,但在通过解析时无效。Gson,它给出了错误: com.google.gson.JsonSyntaxException:java.lang.IllegalStateException: 应为BEGIN_对象,但在第1行第439列处为BEGIN_数组 我已经粘贴了整个Json 列439引用了“formFields”中的最后一个字符(引号):[{“(粘贴箱中的第5行) 要分析的代码: JSONArray results = jsonObject.getJSONArray("results

Json有效,但在通过解析时无效。Gson,它给出了错误:

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException: 应为BEGIN_对象,但在第1行第439列处为BEGIN_数组

我已经粘贴了整个Json

列439引用了
“formFields”中的最后一个字符(引号):[{“
(粘贴箱中的第5行)

要分析的代码:

JSONArray results = jsonObject.getJSONArray("results");
String s = results.toString();
Type token = new TypeToken<List<Form>>(){}.getType();
List<Form> formArrayList1 = new Gson().fromJson(s, token);
任何帮助都将不胜感激!

您的json从

{“results”:[…]因此它本质上是一个对象,它有一个带有键“results”的数组字段

尝试创建类似以下内容的包装器类:

class MyWrapper {
   List<Form> results;
}
类MyWrapper{
列出结果;
}
这会让你走的

编辑1(用户添加了解析结果):尝试用列表替换字段,并创建一个简单的FormField类,其中只有一个字段(ex的标题),用于测试目的,看看它是如何运行的。(顺便说一句,粘贴所有相关的代码部分和整个模型,我们将更容易发现错误)

您的json从

{“results”:[…]因此它本质上是一个对象,它有一个带有键“results”的数组字段

尝试创建类似以下内容的包装器类:

class MyWrapper {
   List<Form> results;
}
类MyWrapper{
列出结果;
}
这会让你走的


编辑1(用户添加了解析结果):尝试用列表替换字段,并创建一个简单的FormField类,其中只有一个字段(ex的标题),用于测试目的,看看它是如何运行的。(顺便说一句,粘贴所有相关的代码部分和整个模型,我们将更容易发现错误)

我昨天也问了类似的问题,希望这能有所帮助:)请和大家分享,模态类,json很好,“formFields"您使用的对象不是数组,来自服务器的响应是数组类型
formFields
应声明为
List formFields;
。您可以使用:创建模型类。它将做两件事。1)验证json是否有效。2)创建有效的JavaPOJOs@PramodYadav从我在JSON中看到的
formFields
是一个
JSONArray
和模型
Form
对于
formFields
具有相同的签名。如果我错了,请纠正我。我昨天问了类似的问题,我希望这有帮助:)请分享你,模态类,json很好,“formFields”您使用的对象不是数组,来自服务器的响应是数组类型
formFields
应声明为
List formFields;
。您可以使用:创建模型类。它将做两件事。1)验证json是否有效。2)创建有效的JavaPOJOs@PramodYadav从我在JSON中看到的
formFields
JSONArray
和模型
Form
formFields
具有相同的签名。如果我错了,请纠正我。我正在提取json数组,然后将其提供给Gson。检查我的更新代码。谢谢JanBo,我会尝试:)我正在提取json数组,然后将其提供给Gson。检查我的更新代码。谢谢JanBo,我会的试试看:)