【问题标题】: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

标签: java json spring-boot


【解决方案1】:

未包装在数组中的 json 对象列表 [] 是无效的 json 格式,将提供 error: multiple JSON root elements

也许您可以将结果修改为这种 JSON 格式?

{
    "somekey": somevalue,
    "someKey2": someValue,
    "someKey3": someValue,
}

【讨论】:

    【解决方案2】:

    正如其他人所指出的,没有包装数组的对象列表将是无效的 JSON。

    但是,如果您真的必须返回它,您可以安排将 JSON 作为字符串获取,然后使用您选择的字符串方法(例如子字符串)删除方括号,然后返回它。最终,JSON 一个字符串。

    【讨论】:

      猜你喜欢
      • 2013-08-21
      • 1970-01-01
      • 2013-09-15
      • 2013-06-22
      • 2018-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      相关资源
      最近更新 更多