繁体   English   中英

在JavaScript中修复此JSON对象字符串的最干净的方法是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM