【发布时间】:2019-01-15 05:18:08
【问题描述】:
我的 API 中有一个 JSON 字符串,如下所示:
[
{
"id": "abc",
"data": {
"Name": "Peter",
"Date": "2017/12/01"
}
},
{
"id": "def",
"data": {
"Name": "Tina",
"Date": "2017/12/20"
}
},
{
"id": "ghi",
"data": {
"Name": "Amy",
"Date": "2017/12/16"
}
}
]
然后,我使用(java):
Gson gson = new Gson();
Type resultType = new TypeToken<List<Map<String, Object>>>() {
}.getType();
List<Map<String, Object>> result = gson.fromJson(info, resultType);
如果我调用 result.get(0).toString()); 然后它返回:
{id=abc, data={Name=Peter, Date=2017/12/01}}
如果我调用 result.get(0).get("id").toString(); 然后它返回了
abc
现在我想获取“数据”的数据,当我调用 result.get(0).get("data").toString(); 然后它返回了
{Name=Peter, Date=2017/12/01}
最后我想得到“名称”的信息,但是当我试图将这个字符串转换为地图时,它会导致一些问题,代码是这样的:
Type type = new TypeToken<Map<String, Object>>(){}.getType();
Map<String, Object> myMap = gson.fromJson(str, type);
这不起作用。我发现可能字符串不是JSON的一般类型,它就像“Name=Peter,Date=2017/12/01”,但它需要“Name”:“Peter”,“Date”:“2017/12 /01" 对吧?那是问题吗?如何获取名称的数据?谁能帮帮我?
更新: 我发现如果"Name" = "",那么我不能把它作为字符串类型,我不能使用"data.get("Name");"。但我仍然需要它。任何人都可以修复它吗?谢谢。
【问题讨论】:
-
为什么你的日期以逗号结尾?我认为 JSON 不以逗号结尾 - en.m.wikipedia.org/wiki/JSON
标签: java json list dictionary gson