小编典典

使用GSON解析JSON数组

json

我有一个像这样的JSON文件:

[
    {
        "number": "3",
        "title": "hello_world",
    }, {
        "number": "2",
        "title": "hello_world",
    }
]

在文件具有根元素之前,我将使用:

Wrapper w = gson.fromJson(JSONSTRING, Wrapper.class);

代码,但我不认为如何将Wrapper类编码为根元素是一个数组。

我试过使用:

Wrapper[] wrapper = gson.fromJson(jsonLine, Wrapper[].class);

与:

public class Wrapper{

    String number;
    String title;

}

但是还没有运气。使用这种方法我还能怎么读呢?

PS我有这个工作使用:

JsonArray entries = (JsonArray) new JsonParser().parse(jsonLine);
String title = ((JsonObject)entries.get(0)).get("title");

但是我更想知道如何使用这两种方法(如果可能)。


阅读 272

收藏
2020-07-27

共1个答案

小编典典

问题是由放置在数组中的JSON对象(在 每种 情况下)的末尾逗号引起的:

{
    "number": "...",
    "title": ".." ,  //<- see that comma?
}

如果删除它们,您的数据将成为

[
    {
        "number": "3",
        "title": "hello_world"
    }, {
        "number": "2",
        "title": "hello_world"
    }
]

Wrapper[] data = gson.fromJson(jElement, Wrapper[].class);

应该工作正常。

2020-07-27