javascript - 将对象字符串转换为 JSON

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

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

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

进入这个:

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

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

最佳答案

如果字符串来自受信任的来源,您可以使用 eval 然后 JSON.stringify 结果。像这样:

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

请注意,当您eval 一个对象字面量时,它必须用括号括起来,否则大括号将被解析为 block 而不是对象。

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

https://stackoverflow.com/questions/9036429/

相关文章:

python - Python 是否有字符串 'contains' 子字符串方法?

python - 如何按值对字典进行排序?

python - 如何检查列表是否为空?

python - 如何检查文件是否存在无异常?

python - 如何安全地创建嵌套目录?

python - Python有三元条件运算符吗?

python - Python 中的元类是什么?

python - 如何执行程序或调用系统命令?

python - 如何列出目录的所有文件?

python - 如果 __name__ == "__main__": do? 会怎样