这是我的JSON数据:
[
{
"page": 0,
"threads": [
{
"no": 498507562,
"last_modified": 1375984181
},
{
"no": 498503346,
"last_modified": 1375984243
},
{
"no": 498497523,
"last_modified": 1375984241
},
{
"no": 498496579,
"last_modified": 1375984241
},
{
"no": 498499114,
"last_modified": 1375984240
},
{
"no": 498503169,
"last_modified": 1375984239
},
{
"no": 498497038,
"last_modified": 1375984239
},
{
"no": 498501946,
"last_modified": 1375984238
},
{
"no": 498507181,
"last_modified": 1375984237
},
{
"no": 498505625,
"last_modified": 1375984236
},
{
"no": 498505578,
"last_modified": 1375984242
},
{
"no": 498507346,
"last_modified": 1375984236
},
{
"no": 498497504,
"last_modified": 1375984236
},
{
"no": 498486742,
"last_modified": 1375984234
},
{
"no": 498502590,
"last_modified": 1375984232
}
]
},
{
"page": 1,
"threads": [
{(...so on)
这是我的反序列化代码:
Gson gson = new Gson();
JSONArray pageJson = JsonReader.readJsonArrayFromUrl(
"https://api.4chan.org/b/threads.json");
System.out.println(pageJson.toString());
PageResponse PageResponse = gson.fromJson(pageJson.toString(), PageResponse.class);
我在PageSecurity上收到错误。这是我的PageResponce类。我想我可能处理信息是正确的。我只使用过JsonObject。我想知道如何获取“page”: 0,然后如何获取“线程”
public class PageResponse {
List<Page> pages;
public List<Page> getPages() {
return pages;
}
}
我的页面类
公共类页面{
int page;
public int getPage() {
return page;
}
}
使用JSONArray#getJSONObject()
首先将Page
对象从数组中拉出来。
Page page = gson.fromJson(pageJson.getJSONObject(0).toString(), Page.class);
System.out.println(page.getPage()); // 0
反序列化所有使用的页面
Page[] pages = gson.fromJson(pageJson.toString(), Page[].class);
System.out.println("Total: " + pages.length); // 2
System.out.println("pages[0] = " + pages[0].getPage()); // pages[0] = 0
或者,向您的JSON字符串添加一组额外的{}
以与封闭的PageACK
对象匹配。它的列表
PageResponse pageResp = gson.fromJson("{ pages : " + pageJson.toString() + " }",
PageResponse.class);
System.out.println(pageResp.getPages().get(1).getPage()); // 1
现在,如果您也使用
线程
扩展您的Page
类
class Page {
private int page;
private List<Threads> threads;
public int getPage() {
return page;
}
public List<Threads> getThreads() {
return threads;
}
}
class Threads {
private long no;
private String last_modified;
public long getNo() {
return no;
}
public String getLastModified() {
return last_modified;
}
}
整个JSON将成功反序列化。
System.out.println(pageResp.getPages().get(0).getThreads().size()); // 15
System.out.println(pageResp.getPages().get(0)
.getThreads().get(0).getNo()); // 498507562
System.out.println(pageResp.getPages().get(0)
.getThreads().get(0).getLastModified()); // 1375984181
我有下面的JSON和模型类,如何使用GSOn反序列化这个JSON,下面的代码片段会出现类似“预期的BEGIN\u对象,但是BEGIN\u数组”的异常。如何为下面的JSON数据生成模型CALS
我有这样的json。在我的情况下,当我单击一个产品时,我会将该产品交给detailproduct。在那之后,我在我的详细信息屏幕中有了回收器。我想按产品数组获取回收商项目,该数组的id等于单击的产品id。 我想了解产品阵列。我的api方法正在返回调用
我从以下改装服务中获得了一个json结果: 我在改装后变得像bellow一样: 但是告诉我: 下面是我的模型:
我正在尝试使用《纽约时报》API,并使用Observable进行改装。但我在尝试使用数据时遇到了这个错误。 有人能帮我看看哪里错了吗? 以下是我的ApiServices界面: 这是我的ApiStreams课 这就是我在我的主要活动中要做的。现在我只想在文本视图中显示每个标题的列表。。。 [编辑]TopStories和NewsItem有我的两个模型 上部结构: 新闻项目: 以下是JSON的外观: J
我找到了一些解决方案,但我真的不知道如何开始。 这是我的密码。 接口 主要活动
预期BEGIN_OBJECT但BEGIN_ARRAY使用GSON解析JSON。我收到错误,这是由于Gson Json实现Json Format的类定义需要使用GSON解析而发生的 用于使用gson进行分析的类: 使用gson解析json的代码:需要解析 "值":"19","值":"19","值":"77","值":"4" 内部数据数组[]。