包含多个 json 值的响应是不是总是必须包装在 java 中的数组中?
Posted
技术标签:
【中文标题】包含多个 json 值的响应是不是总是必须包装在 java 中的数组中?【英文标题】:Does a response containing multiple json Values always have to be wrapped in an array in java?包含多个 json 值的响应是否总是必须包装在 java 中的数组中? 【发布时间】:2022-01-18 07:50:33 【问题描述】:我正在尝试使用 java 从后端返回响应,其中响应是 json 值列表。
这种格式的数据可以返回吗?
"someKey": someValue,
"someKey2": someValue,
"someKey2": someValue
我注意到 json 值总是返回包装在这样的数组中
[
"someKey": someValue,
"someKey2": someValue,
"someKey2": someValue
]
我被要求在不包含在数组中的情况下返回 json 数据,但我在执行此操作时遇到了麻烦。甚至可以在不包装在数组中的情况下返回 json 对象列表吗?这是在 java 中使用 ObjectMapper 类
【问题讨论】:
响应应该是有效的 JSON,第一个不是有效的 JSON。 客户端想要非数组响应的原因是什么?他们真的明白自己想要什么吗? 不确定原因,我只是被告知要这样做,并认为这是可能的。尝试了几个小时后,我真的认为这是不可能的,因为它甚至不是有效的 JSON 【参考方案1】:未包装在数组中的 json 对象列表 []
是无效的 json 格式,将提供 error: multiple JSON root elements
也许您可以将结果修改为这种 JSON 格式?
"somekey": somevalue,
"someKey2": someValue,
"someKey3": someValue,
【讨论】:
【参考方案2】:正如其他人所指出的,没有包装数组的对象列表将是无效的 JSON。
但是,如果您真的必须返回它,您可以安排将 JSON 作为字符串获取,然后使用您选择的字符串方法(例如子字符串)删除方括号,然后返回它。最终,JSON 是一个字符串。
【讨论】:
以上是关于包含多个 json 值的响应是不是总是必须包装在 java 中的数组中?的主要内容,如果未能解决你的问题,请参考以下文章
如何在流分析中查询 JSON 以使包含多个数组值的 JSON 脱离