首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用GSON解析JSON数组

使用GSON解析JSON数组
EN

Stack Overflow用户
提问于 2013-08-25 02:17:47
回答 3查看 161.1K关注 0票数 114

我有一个这样的JSON文件:

代码语言:javascript
复制
[
    {
        "number": "3",
        "title": "hello_world",
    }, {
        "number": "2",
        "title": "hello_world",
    }
]

以前,当文件有根元素时,我会使用:

代码语言:javascript
复制
Wrapper w = gson.fromJson(JSONSTRING, Wrapper.class);

代码,但我不知道如何编写Wrapper类,因为根元素是一个数组。

我尝试过使用:

代码语言:javascript
复制
Wrapper[] wrapper = gson.fromJson(jsonLine, Wrapper[].class);

通过以下方式:

代码语言:javascript
复制
public class Wrapper{

    String number;
    String title;

}

但没什么好运气的。我还能怎么用这种方法来读这篇文章呢?

附言:我使用以下命令来运行:

代码语言:javascript
复制
JsonArray entries = (JsonArray) new JsonParser().parse(jsonLine);
String title = ((JsonObject)entries.get(0)).get("title");

但我更愿意知道如何(如果可能)用这两种方法来做这件事。

EN

回答 3

Stack Overflow用户

发布于 2013-08-25 03:01:10

代码语言:javascript
复制
Gson gson = new Gson();
Wrapper[] arr = gson.fromJson(str, Wrapper[].class);

class Wrapper{
    int number;
    String title;       
}

似乎工作得很好。但是字符串中有一个额外的,逗号。

代码语言:javascript
复制
[
    { 
        "number" : "3",
        "title" : "hello_world"
    },
    { 
        "number" : "2",
        "title" : "hello_world"
    }
]
票数 41
EN

Stack Overflow用户

发布于 2016-11-10 16:10:39

代码语言:javascript
复制
public static <T> List<T> toList(String json, Class<T> clazz) {
    if (null == json) {
        return null;
    }
    Gson gson = new Gson();
    return gson.fromJson(json, new TypeToken<T>(){}.getType());
}

示例调用:

代码语言:javascript
复制
List<Specifications> objects = GsonUtils.toList(products, Specifications.class);
票数 16
EN

Stack Overflow用户

发布于 2019-12-04 15:47:53

代码语言:javascript
复制
Wrapper[] data = gson.fromJson(jElement, Wrapper[].class);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18421674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档