我们有一个来自服务器的 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 中的多类型字段吗?我们使用 Jackson。
最佳答案
您的 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
并将您的逻辑放在一起。
关于java - 寻找一种解析多类型 JSON 字段的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38699621/