我是JSON新手,我真的很难用Java中的GSON解析这个布局
{"time_entries":
[
{"hours":1.0,
"id":311,
"created_on":"2012-11-02T14:53:38Z",
"user":{"id":7,"name":"blah"},
"issue":{"id":266},
"activity":{"id":10,"name":"blah"},
"updated_on":"2012-11-02T14:53:38Z",
"comments":"blah",
"spent_on":"2012-11-02",
"project":{"id":10,"name":"blah"}},
{"hours":6.0,
"id":310,
"created_on":"2012-11-02T13:49:24Z",
"user":{"id":4,"name":"blah"},
"issue":{"id":258},
"activity":{"id":9,"name":"blah"},
"updated_on":"2012-11-02T13:49:24Z",
"comments":"blah",
"spent_on":"2012-11-02",
"project":{"id":11,"name":"blah"
}}
],
"offset":0,
"limit":2,
"total_count":306
}
如果有帮助的话,是Redmine API为时间条目提供的输出。我正在努力理解一些基本的JSON概念,比如对象和数组,但我还没有找到一个布局类似的示例。
在使用我读过的教程时,我主要担心的是多个ID字段会混淆。
什么是最好的方式来分析这个问题而不束缚自己?
我不打算使用Gson,很乐意使用Jackson或内置库的解决方案。最终目标是Android实现,所以我更喜欢使用序列化。
谢啦
编辑:
我对“对象模型”的尝试
public class TimeResponse {
public List<Time_Entry> time_entries;
@SerializedName("hours")
public String hours;
@SerializedName("id")
public int id;
@SerializedName("created_on")
public String created_on;
@SerializedName("name")
public String name;
@SerializedName("updated_on")
public int updated_on;
public int page;
@SerializedName("comments")
public double comments;
@SerializedName("spent_on")
public String spent_on;
@SerializedName("offset")
public String offset;
@SerializedName("limit")
public String limit;
@SerializedName("total_count")
public String total_count;
}
我不确定我应该为我的结果列表写什么(如果我需要的话),我只声明了一次id和名称字符串,尽管它被多次使用?
我知道我不应该在小时数中使用字符串,我正在研究小时数字段实际包含的内容。我认为教程有点过时,因为最后三个字段在Twitter API中的表示方式与现在不同。
数据位于名称/值对中数据由逗号分隔花括号保留对象方括号保留数组
我在这里使用了javascript...它可能对你有用...如果你有任何其他帮助让我知道
var jsonText=xmlhttp.responseText; var obj=ava("("jsonText ")");
row_num=Object.keys(obj.time_entries)。长度;
这一行给出time_entries数组长度的长度
keydata[c]=Object.keys(obj.time_条目[0]);columndata=keydata[0]。toString();my=columndata.split(“,”)
columndata将时间项的键值作为该数组中第零个索引的字符串包含columndata={hours,id,create_on….等等}my={“hours”,“id…”等等}
我不知道你说的多个ID字段是什么意思。JSON中没有ID这种东西。
关于基本的JSON概念,请参见http://json.org/:
对象:
对象是一组无序的名称/值对。对象以{(左大括号)开始,以}(右大括号)结束。每个名称后面跟有:(冒号),名称/值对之间用(逗号)分隔。
数组:
数组是值的有序集合。数组以[(左括号)开始,以](右括号)结束。值之间用(逗号)分隔。
价值:
值可以是双引号中的字符串、数字、true或false或null、对象或数组。这些结构可以嵌套。
字符串:
字符串是零个或多个Unicode字符的序列,用双引号括起来,使用反斜杠转义。字符表示为单个字符串。字符串非常类似于C或Java字符串。
号码:
数字与C或Java数字非常相似,只是不使用八进制和十六进制格式。
编辑:
要简化问题中的JSON,除了将其打印出来外,您可以做的不多:
{
"time_entries": [
{
"hours": 1,
"id": 311,
"created_on": "2012-11-02T14:53:38Z",
"user": {
"id": 7,
"name": "blah"
},
"issue": {
"id": 266
},
"activity": {
"id": 10,
"name": "blah"
},
"updated_on": "2012-11-02T14:53:38Z",
"comments": "blah",
"spent_on": "2012-11-02",
"project": {
"id": 10,
"name": "blah"
}
},
{
"hours": 6,
"id": 310,
"created_on": "2012-11-02T13:49:24Z",
"user": {
"id": 4,
"name": "blah"
},
"issue": {
"id": 258
},
"activity": {
"id": 9,
"name": "blah"
},
"updated_on": "2012-11-02T13:49:24Z",
"comments": "blah",
"spent_on": "2012-11-02",
"project": {
"id": 11,
"name": "blah"
}
}
],
"offset": 0,
"limit": 2,
"total_count": 306
}
也许您可以看到您有一个JSON对象,它有四个名称/值对:
time_entries
偏移量
限制
total_count
最后三个有简单的数值,而第一个(time_entries
)是两个以上对象的数组。这两个对象中的每一个都包含了不同的名称/值对。名称/值对id
只是其中之一。
问题内容: 我有JSON对象,如下所示: 我想在android中解析数据并将其存储到数据库中,但是我在Jsonobject中感到困惑,谢谢 问题答案: 以下是用于解析json字符串的代码段代码。请经历一下:
问题内容: 我有JSON对象,如下所示: 在Java中,我想解析上述json对象并将值存储在arraylist中。 我正在寻找一些代码来实现这一目标。 问题答案: 我假设你想将interestKeys存储在列表中。 使用库:
问题内容: 我熟悉如何使用注释从我的方法返回json 。 现在,我试图将一些json参数读入我的控制器,但到目前为止还没有运气。这是我的控制器的签名: 但是当我尝试调用此方法时,spring抱怨: 删除注释似乎没有什么不同。 手动解析json是可行的,因此Jackson必须在类路径中: 有任何想法吗?我是否在尝试做不被支持的事情? 问题答案: 您的参数要么是一个, 或者 一个,不能同时使用。 用于
你好,我有以下任务: 具有JSON对象的URL: *通过注释定义如何将JSON定义到Java列表中,并找到其中有“名称”的对象。 我认为问题是在不使用任何java库的情况下解析JSON。到目前为止,我已经开发了以下代码: 我在这里做的是我有一个JSONObject类,它将JSON属性存储在映射中,然后我想使用反射来填充任何类。 为了解析JSON,我尝试创建一个迷你FSM(:)),它使用For循环解
} 我在公共类中的主要方法是这样的: 以下是包裹的代码: } 但是我似乎没有找到正确的方法来将变量的所有值存储在列表中。现在我得到的只是parcel[data=null]。
因此,我试图使用GSON解析Java中的JSON对象。我正在尝试从一个网站消费一个API。这是代码:https://api.coinmarketcap.com/v1/ticker/bitcoin/ JSON如下所示: 我正在使用Jersey来消费API,我想把这个JSON转换成一个对象。 这是应该通过解析JSON来构建的对象: 这是我的代码: 我有个错误 线程“main”com.google.gs