一尘不染

将对象字符串转换为JSON

javascript

如何使用JavaScript(或jQuery)将描述对象的字符串转换为JSON字符串?

例如:转换这个( 不是 有效的JSON字符串):

var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"

到这个:

str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'

eval()如果可能,我希望避免使用。


阅读 271

收藏
2020-05-01

共1个答案

一尘不染

如果字符串是来自可靠来源 ,你可以使用eval然后JSON.stringify的结果。像这样:

var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }";
var json = JSON.stringify(eval("(" + str + ")"));

请注意,当您eval使用对象文字时,必须将其括在圆括号中,否则将花括号解析为块而不是对象。

我也同意以下问题的评论,那就是最好以有效的JSON开始编码对象,而不必先解析,编码,然后大概 再次
解析它。HTML支持单引号属性(只需确保对字符串内的任何单引号进行HTML编码)。

2020-05-01