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

e、 g:将其转换为(NOT个有效的JSON字符串):

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

into this:

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

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

推荐答案

If the string is from a trusted source,你可以用eval然后用JSON.stringify来计算结果.这样地:

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

请注意,当你输入一个对象文字时,它必须用括号括起来,否则大括号将被解析为一个块而不是一个对象.

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

Json相关问答推荐

boost::json::value 的大括号初始化将其从对象转换为数组

如何在 Django 的模板语言中获取 json 键和值?

PowerShell - 如何迭代 PSCustomObject 嵌套对象?

解析 JSON API 响应

hook到 Decodable.init() 以获得未指定的键?

如何在 asp.net core 3 中设置 json 序列化程序设置?

Vue Axios CORS 政策:没有“访问控制允许来源”

在 JSON 字符串中react i18n 换行符

TypeError:“float32”类型的对象不是 JSON 可序列化的

如何为所有 API 端点全局设置 http.ResponseWriter Content-Type 标头?

有 Json 标签但未导出

如何使用 jq 将字符串转换为 JSON 文件中的整数?

从 VS 2017 Azure Function 开发中的 local.settings.json 读取值

如何在notepad++ 中格式化JSON

没有从字符串值('')反序列化的字符串参数构造函数/工厂方法

无法将空值放入 JSON 对象

为什么 JSON.parse(['1234']) 返回 1234?

使用 UNION 时无法识别 json[] 类型的相等运算符

jq:按属性分组和键

Newtonsoft Json 将值 {null} 转换为类型“System.Int32”时出错