【问题标题】:How to add [ ] brackets to JSON in JavaScript如何在 JavaScript 中将 [ ] 括号添加到 JSON
【发布时间】:2019-08-09 12:32:42
【问题描述】:

我居然收到这种格式的JSON格式:

{ "bank": "CityBank", "sum": "500" }, { "bank": "WPBank", "sum": "700" }

但是如果没有 [] 括号就无法解析 is。结果应该是:

[{ "bank": "CityBank", "sum": "500" }, { "bank": "WPBank", "sum": "700" }]

如何在JS中添加这些括号?

【问题讨论】:

  • 你从哪里得到损坏的 JSON?问题应该从源头上解决。第一个示例根本不是 JSON。
  • 前者不是JSON。推荐的方法是更正您获得此类响应的 API。
  • let parsed = JSON.parse(`[${notJSON}]`);
  • 这是如何从响应中返回的?通常如果有无效的 JSON,什么都不会返回。
  • @Scrimothy - 显然 API 返回文本 - 可以是任何东西,甚至不是 JSON:p

标签: javascript json regex string object


【解决方案1】:

您可以只使用无效的 JSON 并使用 JSON.parse 正确解析它:

let invalid = '{ "bank": "CityBank", "sum": "500" }, { "bank": "WPBank", "sum": "700" }';
let valid = JSON.parse("[" + invalid + "]");
console.log(valid);

【讨论】:

  • 这很酷——我不知道JSON.parse 可以解决无效的 JSON。这有什么限制?是否存在某种已知程度/方式输入格式错误,JSON.parse 会失败?
  • 不,上面的JSON.parse not 解析无效的 JSON - 它正在解析无效的 JSON 字符串,我通过添加方括号将其连接成有效的 JSON 字符串。
  • 没问题@AlexanderNied,总是乐于提供帮助。
猜你喜欢
  • 2021-02-26
  • 2019-04-24
  • 2019-11-05
  • 2020-10-28
  • 2021-11-07
  • 2021-01-05
  • 2022-12-06
  • 2017-04-12
  • 1970-01-01
相关资源
最近更新 更多