【发布时间】:2014-02-11 19:01:24
【问题描述】:
我想读取一个 json 数组,如果可能的话,把它放到一个 int 三维数组中。
数据看起来像这样,我可以更改它的设计以满足我的需要,因为它还没有完成。这些值是愚蠢的,但要知道的是(Caution mindf*ck ahead)我必须嵌套未知数量的包含整数的数组,在重复三次或更少的数组中嵌套两次在根节点中。
I.E. int[3 or less][2][unknown int] = val
我编写了密钥以提高可读性,它们可能是也可能不是实际 json 的一部分。
{
demand : {
0 : {
0 :{
0 :22,
1 :32,
2 :21
},
1 :{
0 :2762,
1 :352,
2 :231
}
},
1 :{
0 :{
0 :222,
1 :232,
2 :621
},
1 :{
0 :272,
1 :37762,
2 :261
}
}
}
}
关键是键和值都是整数,我想用它创建一个int [][][]。我认为答案就在这个文档中:Jackson Full Databinding,但我不明白它如何适用于我的数据。
我正在考虑一些 ObjectMapper.readValue(json, new TypeReference>() { })` 并将继续研究,但我没有太大希望。
感谢您的帮助!
编辑这是实际有效的 JSON
[ [ [ 22, 32, 21 ], [ 2762, 352, 231 ] ], [ [ 222, 232, 621 ], [ 272, 37762, 261]] ]
【问题讨论】:
-
首先,您描述为想要的 JSON 是无效的 JSON。 JSON 中的键是 strings。其次,即使我们假设键是字符串,您所描述的是 Java
Map<String, Map<String, Map<String, Integer>>>Json 中的三维数组将是[ [ [22,32,21],[2762,352,231] ],[ [222,232], ... ] ] ] -
就像我说的,这些键可能是也可能不是我为了可读性而编写的实际 JSON 数据的一部分。方括号符号确实是数组的正确符号,我稍后会相应地进行编辑。不过,我还得弄清楚如何处理杰克逊。
标签: java json multidimensional-array jackson primitive