java - 使用 GSON 解析 JSON 数组

标签 java arrays json gson

我有一个这样的 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;

}

但没有任何运气。使用这种方法我还能如何阅读?

P.S 我可以使用:

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

但我更愿意知道如何使用这两种方法(如果可能的话)。

最佳答案

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

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

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

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

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

应该可以正常工作。

关于java - 使用 GSON 解析 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18421674/

相关文章:

java - 使 Jersey bean 验证注释变得通用

json - 来自 REST 服务的 Angular 4.4 日期反序列化

c - 如何检查一个字符串的第一个字母与同一字符数组内另一个字符串的最后一个字母

ruby-on-rails - 在 Rails 中为 Twitter API 解析 JSON 的最佳方式

php - 在MySQL中解析多维json字符串

java - Java 中的数组列表和列表

Java JMenu 和 Jtextfield 只处理数字而不处理字符串

java - 获取 CURRENT_TIMESTAMP 作为结果集的一部分

javascript - 无法读取 null 的属性推送

javascript - 将 "[ with [ and ]"替换为 ] json