【问题标题】:Convert JSON String to JSON Object in JavaScript在 JavaScript 中将 JSON 字符串转换为 JSON 对象
【发布时间】:2020-07-16 14:07:59
【问题描述】:

我知道有很多类似的问题存在,但是我找不到合适的答案。

考虑 Javascript 对象,

var a = [ { defaultCount:'200' , timeintervals : [{ day:'Weekday', from:'9:00', to:'18:00', count:'100' }, { day:'Weekday', from:'9:00', to:'18:00', count:'100' } ]}];

现在运行 a[0].defaultCount 按预期给我“200”。

现在是同一个 Javascript 对象,我用双引号括起来。

var b = "[ { defaultCount:'200' , timeintervals : [{ day:'Weekday', from:'9:00', to:'18:00', count:'100' }, { day:'Weekday', from:'9:00', to:'18:00', count:'100' } ]}]";

这里 b[0] 给我 "[" 而 b[4] 给我 "d" 等等。

如果我理解正确,var a 是 JavaScript 对象,var b 是字符串。 我从 Java 端接收 var b 作为字符串。 如何将 var b 转换为可以像在 var a 上一样进行迭代的形式?

我试过了: var c = JSON.parse(b) 但出现语法错误。

我真的不想更改 JSON 格式,因为它也是 Java 端使用的模板。 有什么简单的解决方法吗?

console screenshot

【问题讨论】:

  • JSON 是一种标准/规范,需要双引号中的属性和字符串
  • 我建议修复源代码。
  • 为什么只在 JSON 周围添加双引号?这里的目标是什么?您始终可以使用 JSON.stringify 将您的对象转换为正确的 JSON 字符串表示形式。
  • 去掉双引号会怎样?
  • eval() 会做你喜欢的事。只要你能承受起起落落。

标签: javascript arrays json parsing


【解决方案1】:
[{ 
  "defaultCount":"200" , 
  "timeintervals": [{ "day":"Weekday", "from":"9:00", "to":"18:00", "count":"100" }, { "day":"Weekday", "from":"9:00","to":"18:00", "count":"100"}]
}]

使用双引号

【讨论】:

  • 我担心当它作为字符串传递时同样不起作用,这是我试图解决的根本问题。 "[{ "defaultCount":"200" , "timeintervals": [{ "day":"Weekday", "from":"9:00", "to":"18:00", "count":" 100" }, { "day":"Weekday", "from":"9:00","to":"18:00", "count":"100"}] }]" 给出语法错误。
猜你喜欢
  • 2016-07-16
  • 1970-01-01
  • 2011-05-21
  • 1970-01-01
  • 2019-08-27
  • 2020-05-27
  • 1970-01-01
  • 2012-08-28
  • 2021-10-31
相关资源
最近更新 更多