【发布时间】:2016-06-11 22:24:57
【问题描述】:
我正在使用 Jackson 将 JSON 从 ReST API 反序列化为使用 Jackson 的 Java 对象。
我遇到的问题是一个特定的 ReST 响应返回包装在一个由数字标识符引用的对象中,如下所示:
{
"1443": [
/* these are the objects I actually care about */
{
"name": "V1",
"count": 1999,
"distinctCount": 1999
/* other properties */
},
{
"name": "V2",
"count": 1999,
"distinctCount": 42
/* other properties */
},
...
]
}
到目前为止,我(也许是幼稚的)反序列化 JSON 的方法是创建镜像 POJO,并让 Jackson 简单而自动地映射所有字段,它做得很好。
问题在于,ReST 响应 JSON 具有对我实际需要的 POJO 数组的动态数字引用。我无法创建镜像包装 POJO,因为属性名称本身既是动态的,也是非法的 Java 属性名称。
对于我可以调查的路线的任何和所有建议,我将不胜感激。
【问题讨论】:
-
A) 您的 JSON 无效:缺少
]。 B)使用对象数组来防止您遇到的问题(如果我对您的示例有足够的了解,因为它有点有限) -
A) 谢谢;我已经更新了示例 JSON B) 当然,对象数组正是我的目标,但我实际上根本无法访问该数组,因为它被一个在 Java 中既动态又非法的属性名称引用跨度>
标签: java json jackson json-deserialization