一尘不染

将无效的JSON字符串转换为JSON

json

我有一个无效的json字符串,如下所示,

"{one: 'one', two: 'two'}"

我尝试使用JSON.parse将其转换为对象。但是,这不是有效的json字符串。是否有任何函数可以将这种无效格式转换为有效的json字符串或直接转换为对象?


阅读 404

收藏
2020-07-27

共1个答案

一尘不染

如果您的示例语法与真实JSON相同,则JSONLint表示您需要对名称和值使用双引号。

仅在这种情况下,请使用以下替换调用:

var jsontemp = yourjson.replace((/([\w]+)(:)/g), "\"$1\"$2");
var correctjson = jsontemp.replace((/'/g), "\"");
//yourjson = "{one: 'one', two: 'two'}"
//jsontemp = "{"one": 'one', "two": 'two'}"
//correctjson = "{"one": "one", "two": "two"}"

但是,您首先应该尝试使用有效的Json。

2020-07-27