如何使用JavaScript (或jQuery)将描述对象的字符串转换为JSON字符串?
例如:转换此字符串(不是有效的JSON字符串):
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"
如下所示:
str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'
如果可能的话,我会尽量避免使用eval()
。
发布于 2013-12-16 07:24:28
在下面的链接中使用简单的代码:
http://msdn.microsoft.com/es-es/library/ie/cc836466%28v=vs.94%29.aspx
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);
和反转
var str = JSON.stringify(arr);
发布于 2014-10-10 11:09:07
我希望这个小函数能将无效的JSON字符串转换为有效的字符串。
function JSONize(str) {
return str
// wrap keys without quote with valid double quote
.replace(/([\$\w]+)\s*:/g, function(_, $1){return '"'+$1+'":'})
// replacing single quote wrapped ones to double quote
.replace(/'([^']+)'/g, function(_, $1){return '"'+$1+'"'})
}
结果
let invalidJSON = "{ hello: 'world',foo:1, bar : '2', foo1: 1, _bar : 2, $2: 3, 'xxx': 5, \"fuz\": 4, places: ['Africa', 'America', 'Asia', 'Australia'] }"
JSON.parse(invalidJSON)
//Result: Uncaught SyntaxError: Unexpected token h VM1058:2
JSON.parse(JSONize(invalidJSON))
//Result: Object {hello: "world", foo: 1, bar: "2", foo1: 1, _bar: 2…}
发布于 2012-01-28 00:18:54
请谨慎使用(因为eval()
):
function strToJson(str) {
eval("var x = " + str + ";");
return JSON.stringify(x);
}
调用方式:
var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }";
alert( strToJson(str) );
https://stackoverflow.com/questions/9036429
复制相似问题