[英]Whats the cleanest way to repair this JSON object string in javascript?
我正在进行一些网站爬网,现在,我找到了JSON对象的此字符串
{ "results" : [
{
id: 775664,
status: "In-Stock",
ffmtCenterId: '10601',
altText: "In-Stock",
qty: 6
}
]}
并且我不希望使用JSON.parse()
将其转换为对象,但是由于存在语法错误(例如您需要在键值周围加上引号JSON.parse()
,因此无法正常工作。 我尝试了eval()
但是没有用。
有谁知道修复此字符串的好方法,以便可以将其转换为对象?
谢谢
您如何尝试eval()
?
eval("var a = " + incoming_string);
var fixed = JSON.stringify(a);
a
是对象,我认为您不需要该fixed
字符串。
当然,评估未知字符串并不安全。
hjson项目似乎是一个可能的解决方案。 他们的在线转换器设法将损坏的结构解析为正确的JSON,尽管在转换中似乎有些古怪。
尽管我看到您评论过您已经找到了修复程序,但是这里有一个double replace()
作为多行字符串在此示例上起作用:
var a = `{ "results" : [
{
id: 775664,
status: "In-Stock",
ffmtCenterId: '10601',
altText: "In-Stock",
qty: 6
}
]}`
var b = a.replace(/(\w+)(: )/g, "\"$1\" $2" ).replace(/(:\s+)['](\w+)['](,\n)/g, "$1\"$2\"$3" )
var jo = JSON.parse( b )
没有第二个replace()
,我在ffmtCenterId
数据上的Firebug中收到JSON.parse错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.