【发布时间】: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 端使用的模板。 有什么简单的解决方法吗?
【问题讨论】:
-
JSON 是一种标准/规范,需要双引号中的属性和字符串
-
我建议修复源代码。
-
为什么只在 JSON 周围添加双引号?这里的目标是什么?您始终可以使用
JSON.stringify将您的对象转换为正确的 JSON 字符串表示形式。 -
去掉双引号会怎样?
-
eval()会做你喜欢的事。只要你能承受起起落落。
标签: javascript arrays json parsing