包含多个 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响应显示为单个值的HTML

如何在流分析中查询 JSON 以使包含多个数组值的 JSON 脱离

ASP.NET WebService 正在用 XML 标记包装我的 JSON 响应

json数据中对象包含对象怎么解析

Groovy 比较两个带有未知节点名称和值的 json

如何测试 Json 响应是不是包含错误或正确的 json