我们有来自服务器的JSON答案,其中我们有字节数组的数组,但也可以是“无”字符串值而不是空数组。例如:
{'jsonrpc': '2.0', 'id': 31, 'result': {"bytes_arrays": [[21,99,165,243,25,210,14,121,120,39,22,102,59],[22,32,42,54,65,65,76,87],None]}
在我的班上,我经常写这样的东西:
@JsonProperty("bytes_arrays")
private List<byte[]> mArraysList = new ArrayList<>();
但当然,对于带有“None”值的最后一个元素,我们会有一个解析错误,因为它是一个字符串。
有没有办法在这个JSON中提取多类型字段?我们使用杰克逊。
答案 0 :(得分:1)
JSON字符串末尾有一个缺少的括号。修复并格式化它看起来像这样:
{
'jsonrpc' : '2.0',
'id' : 31,
'result' : {
"bytes_arrays" : [
[ 21, 99, 165, 243, 25, 210, 14, 121, 120, 39, 22, 102, 59 ],
[ 22, 32, 42, 54, 65, 65, 76, 87 ],
None
]
}
}
Jackson
应该能够将其解析为Map<String, Object>
。
然后,您可以使用Object
检查instanceof
的类型,并将您的逻辑放在一起。