将纯字符串转换为JSON

时间:2017-03-20 14:57:21

标签: javascript arrays json string

我有一个如下所示的字符串

 "{stockName: NSE:APOLLOTYRE, stockSignal: Buy, triggerPrice: 204.25, triggerDate: 44900}"

现在我如何将其转换为json,如下所示:

    {
    stockName: APOLLOTYRE, 
    stockSignal: Buy, 
    triggerPrice: 204.25, 
    triggerDate: 44900
}

请注意" NSE:"应该从生成的JSON中删除 我试过下面的代码,但显然它没有用。

 var data_array = input.body.split(',');
        var json = JSON.stringify(data_array);
        console.log(json);

2 个答案:

答案 0 :(得分:1)

您可以使用 String.replace 向伪JSON中的属性添加引号,将其转换为正确的JSON,然后使用JSON.parse:



var input = "{stockName: NSE:APOLLOTYRE, stockSignal: Buy, triggerPrice: 204.25, triggerDate: 44900}";

var withQuotes = input.replace(/(\b[a-z]+:)?(\b[a-z]+\b)/gi, '"$2"');

var parsed = JSON.parse(withQuotes);

console.log(parsed);




答案 1 :(得分:1)

要将您的字符串转换为JSON对象,您必须这样做:

var s = "{stockName: APOLLOTYRE, stockSignal: Buy, triggerPrice: 204.25, triggerDate: 44900}"

像这样:

var s = "{\"stockName\": \"APOLLOTYRE\", \"stockSignal\": \"Buy\", \"triggerPrice\": 204.25, \"triggerDate\": 44900}"

并且可以使用

将其从json解析为javaScript对象

JSON.parse(s);

您可以尝试这样的事情:

var s = "{stockName: APOLLOTYRE, stockSignal: Buy, triggerPrice: 204.25, triggerDate: 44900}";

s = s.replace(/{/g, '{\"');

s = s.replace(/}/g, '\"}');

s = s.replace(":", '\":\"');

s = s.replace(/, /g, '\",\"');

JSON.parse(s);