【发布时间】:2016-10-06 00:39:59
【问题描述】:
我想控制给定数据是否为 JSON 格式。
对于这个控件,我使用 JSON.parse 和 try catch。作为;
var str= {
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]
}
try {
parsed = JSON.parse(str);
} catch (err) {
return "It is not valid JSON file";
}
但我想扩展规则。 我想接受以下文件格式,其中字段不必写在 "" as;
{
employees:[
{firstName:"John", lastName:"Doe"},
{firstName:"Anna", lastName:"Smith"},
{firstName:"Peter", lastName:"Jones"}
]
}
我该怎么做? JSON.parse 不接受这种格式。
【问题讨论】:
-
您可以使用
eval(),但您必须考虑这种方法的安全隐患。 -
{"name": "alex" , "age": "33"}- 这不是 json,它是一个 javascript 对象。 Json 是一个字符串 -"{"name": "alex" , "age": "33"}" -
在你的情况下 str 已经是一个你不需要解析它的对象。
-
JSON.parse 不接受该格式,因为它无效。键必须用引号引起来
-
是的。但我想使键不在引号中的文件格式可以接受。 @ammoQ 我如何使用 eval()?
标签: javascript json parsing