Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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
Java Gson解析数组帮助-不使用数组但不使用数组_Java_Android_Gson - Fatal编程技术网

Java Gson解析数组帮助-不使用数组但不使用数组

Java Gson解析数组帮助-不使用数组但不使用数组,java,android,gson,Java,Android,Gson,有人能帮我使用Gson解析器吗。当我从JSON和Result中删除更改时,它可以正常工作,但随着更改,它抛出JsonParseException解析失败 Result[] response = gson.fromJson(fileData.toString(), Result[].class); 我有这样的课 public class Result { public String start_time; public String end_time; public ch

有人能帮我使用Gson解析器吗。当我从JSON和Result中删除更改时,它可以正常工作,但随着更改,它抛出JsonParseException解析失败

Result[] response = gson.fromJson(fileData.toString(), Result[].class);
我有这样的课

public class Result {
    public String start_time;
    public String end_time;
    public change[] change;
}

和类似Json的字符串

[
  {
        "start_time": "8:00",
        "end_time": "10:00",
        "change": [
            {
                "id": "1",
                "name": "Sam"
            },
            {
                "id": "2",
                "name": "John"
            }
        ]
    },
    {
        "start_time": "9:00",
        "end_time": "15:00",
        "change": [
            {
                "id": "1",
                "name": "Sam"
            },
            {
                "id": "2",
                "name": "John"
            }
        ]
    }
]

有人能告诉我我做错了什么吗?知道为什么它不能与数组一起工作吗?

正如建议的那样,您需要使用列表来代替。Gson有很好的文档说明了如何在解析器中使用参数化类型,您可以阅读更多关于它的内容。您的代码最终将如下所示:

Type listType = new TypeToken<List<Result>>() {}.getType();
List<Result> results = gson.fromJson(reader, listType);
for (Result r : results) {
    System.out.println(r);
}

正如所建议的,您需要使用列表。Gson有很好的文档说明了如何在解析器中使用参数化类型,您可以阅读更多关于它的内容。您的代码最终将如下所示:

Type listType = new TypeToken<List<Result>>() {}.getType();
List<Result> results = gson.fromJson(reader, listType);
for (Result r : results) {
    System.out.println(r);
}

您应该尝试改用列表:list response=gson.fromJsonfileData.toString,list.class;但是,您需要使用类型标记来捕获泛型类型;在哪里定义了ResultLine?您应该尝试改用列表:list response=gson.fromJsonfileData.toString,list.class;但是,您需要使用类型标记来捕获泛型类型;ResultLine是在哪里定义的?我试过了,但还是同一个错误。这在数组结果中不是问题,它在json中不是嵌入数组更改时工作。但当它在Json中时就不起作用了。“那部分我不明白。”达米尔-我不确定我是否明白你的问题。我根据您在上面发布的内容构建了一个工作测试用例,您可能希望用一些不工作的代码来扩展您的问题。它可以在一个非常复杂的jsonArray中完美地工作,其中包含多个数组和对象。非常感谢。我试过了,但还是同样的错误。这在数组结果中不是问题,它在json中不是嵌入数组更改时工作。但当它在Json中时就不起作用了。“那部分我不明白。”达米尔-我不确定我是否明白你的问题。我根据您在上面发布的内容构建了一个工作测试用例,您可能希望用一些不工作的代码来扩展您的问题。它可以在一个非常复杂的jsonArray中完美地工作,其中包含多个数组和对象。非常感谢你。