Edd*_*Edd 109 java arrays json gson
我有一个像这样的JSON文件:
[
{
"number": "3",
"title": "hello_world",
}, {
"number": "2",
"title": "hello_world",
}
]
Run Code Online (Sandbox Code Playgroud)
在文件有根元素之前我会使用:
Wrapper w = gson.fromJson(JSONSTRING, Wrapper.class);
Run Code Online (Sandbox Code Playgroud)
代码,但我想不出如何编写Wrapper类,因为根元素是一个数组.
我尝试过使用:
Wrapper[] wrapper = gson.fromJson(jsonLine, Wrapper[].class);
Run Code Online (Sandbox Code Playgroud)
有:
public class Wrapper{
String number;
String title;
}
Run Code Online (Sandbox Code Playgroud)
但是没有运气.我怎么能用这种方法读这个?
PS我有这个工作使用:
JsonArray entries = (JsonArray) new JsonParser().parse(jsonLine);
String title = ((JsonObject)entries.get(0)).get("title");
Run Code Online (Sandbox Code Playgroud)
但我更愿意知道如何使用这两种方法(如果可能的话).
Psh*_*emo 107
问题是由数组中每个 JSON对象末尾的逗号引起的(在每个 JSON对象之后__CODE__).如果您将其删除并将数据更改为
{
"number": "...",
"title": ".." , //<- see that comma?
}
Run Code Online (Sandbox Code Playgroud)
__CODE__
应该工作正常.
Nar*_*hai 39
Gson gson = new Gson();
Wrapper[] arr = gson.fromJson(str, Wrapper[].class);
class Wrapper{
int number;
String title;
}
Run Code Online (Sandbox Code Playgroud)
似乎工作正常.但是,你的字符串中还有一个额外的逗号.
[
{
"number" : "3",
"title" : "hello_world"
},
{
"number" : "2",
"title" : "hello_world"
}
]
Run Code Online (Sandbox Code Playgroud)
小智 16
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());
}
Run Code Online (Sandbox Code Playgroud)
样品来电:
List<Specifications> objects = GsonUtils.toList(products, Specifications.class);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
140648 次 |
| 最近记录: |