我有一个无效的json字符串,如下所示,
"{one: 'one', two: 'two'}"
我尝试使用JSON.parse将其转换为对象。但是,这不是有效的json字符串。是否有任何函数可以将这种无效格式转换为有效的json字符串或直接转换为对象?
如果您的示例语法与真实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。