如何为以下结构创建正确的对象?
没有任何键的JSON和数组中数组中的数组:
{
"1": [
[
[1.111, 2.222]
[1.111, 2.222]
...
],
[
[1.111, 2.222]
...
]
],
"2": [
[
[1.111, 2.222]
...
],
[
[1.111, 2.222]
...
]
],
...
}
答案 0 :(得分:2)
我不会给你代码解决方案,但我会解释你的格式。详细解释了JSON格式here。
你有
{
"1": [
[
[1.111, 2.222]
[1.111, 2.222]
...
],
[
[1.111, 2.222]
...
]
],...
您的根元素是JSON对象。它包含许多对。每对("1": ...)
都有一个JSON数组[...]
的值。这些JSON数组中的每一个都包含JSON数组[...]
的元素。这些JSON数组最终包含JSON数字原语[12.34]
的元素。
所以你的JSON有以下级别(括号之间的数字是概念嵌套级别)
Object (0)
name -> Array (1) of Arrays (2)
-> Array (2) of Arrays (3)
-> Array (3) of number primitives
这可以映射到Map<String, List<List<List<Double>>>>
,因为你有三个嵌套的数组级别。
如果你有一个自定义类,那也可以工作,但是很难映射根对名称,因为你在Java类中没有动态字段名称。这就是我建议Map
以上的原因。
或者,您可以将JSON解析为com.google.gson.JsonObject
并遍历对象结构以获取所需的元素。
答案 1 :(得分:0)
我有类似的问题,但是我有一些不同的JSON,并且我无法在Map中使用您的解决方案。示例(地图>)。
我的JSON结构:
{
"2019-05-26": {
"lastUpdate": "2019-05-26 06:05:02",
"routes":[
{
"routeId": 107,
"agencyId": 18
},
{
"routeId": 222,
"agencyId": 22
}
]
},
"2019-05-27": {
"lastUpdate": "2019-05-27 06:05:02",
"routes":[
{
"routeId": 33,
"agencyId": 14
},
{
"routeId": 345,
"agencyId": 2232
}
]
}
}
如何使用此JSON?我想将其解析为我的POJO。