我有一个如下所示的字符串
"{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);
答案 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);