【问题标题】:convert same format string to object [duplicate]将相同的格式字符串转换为对象[重复]
【发布时间】:2017-08-16 09:26:55
【问题描述】:

如果我有如下字符串:

[{"id":123, "name": "Sally", "age": 36}
{"id":138, "name": "Nicholas", "age": 48}
{"id":194, "name": "Steven", "age": 25}]

有没有办法将它转换为对象?因为,它们的格式几乎相同。请纠正我,如果我错了,请告诉我。谢谢。

【问题讨论】:

  • 这已经是一个对象了
  • 不,它是一个字符串。我使用 typeof,它返回给我一个字符串。
  • 然后JSON.parse(str)
  • 该死的我花了很长时间才弄明白,但你在不到 10 秒的时间内为我解决了这个问题。谢谢@adeneo
  • 它不是一个有效的 json

标签: javascript arrays json string object


【解决方案1】:

你没有合法的json,如果你自己创建可以添加,

[{"id":123, "name": "Sally", "age": 36} // no , not valid
{"id":138, "name": "Nicholas", "age": 48} // no , not valid
{"id":194, "name": "Steven", "age": 25}]

[{"id":123, "name": "Sally", "age": 36}, // <- you need , here
{"id":138, "name": "Nicholas", "age": 48}, // <- you need , here
{"id":194, "name": "Steven", "age": 25}]

但是如果从某个地方获取此字符串,您可以在执行 JSON.parse 之前添加 , 并使您的字符串成为有效的 json。

var a = `[{"id":123, "name": "Sally", "age": 36}
{"id":138, "name": "Nicholas", "age": 48}
{"id":194, "name": "Steven", "age": 25}]`

var b = JSON.parse(a.replace(/\n/gim, ','));
console.log (b)

【讨论】:

  • 我不明白您是如何在将答案作为副本关闭后发布的。无论如何,他有没有逗号都没有关系。这似乎是一个错字,因为 OP 明确感谢 adeneo 在 cmets 中的回答。
猜你喜欢
  • 1970-01-01
  • 2020-10-15
  • 2020-09-28
  • 1970-01-01
  • 2020-12-05
  • 1970-01-01
  • 2019-04-28
  • 2019-02-23
  • 1970-01-01
相关资源
最近更新 更多