jquery - 从字符串创建 JSON,用作对象

标签 jquery json

所以我想创建这个 JSON 对象:

{
   "id":"3",
   "created":"0000-00-00",
   "parentIDs":null,
   "childIDs":"",
   "uid":"movies",
   "title":"Movies",
   "related":"movies",
   "pos":"",
   "css":"{ "background-image":"-webkit-linear-gradient(bottom, rgb(46,44,46) 49%, rgb(18,17,18) 75%)" }"
}

来自字符串:

value = ""id":"3","created":"0000-00-00","parentIDs":null,"childIDs":"","uid":"imdb","title":"Imdb","related":"movies","pos":"""

该字符串来自数据库,因此我无法真正更改格式,但它应该是正确的。

(该字符串源自一组类似的字符串,我对其进行迭代,但不知何故丢失了它们周围的 {})

我尝试使用 value.substr(1, value.length - 2); 删除外部引号。然后使用 .toJSON(); 进行转换,但它只会添加大量我不需要的额外斜杠。

我只需要在它周围添加 {},然后 javascript 就会将其视为 JSON 对象。

有没有什么速记方法可以做到这一点?或者是否有一个小库可以以巧妙的方式将我的凌乱字符串转换为 JSON 对象?

[update]

我尝试过: eval('{' + value + '}'); 但我在 Chrome 中收到 Uncaught SyntaxError: Unexpected token :

我尝试了 JSON.parse 但得到: TypeError: JSON.parse is not a function 在 Chrome 和 Firefox 中,它必须是字符串的格式。我开始怀疑“css”条目,尽管它在第一个“id”条目处开始提示,但它期望的是一个函数而不是 JSON?

(我删掉了原始 JSON,但忘记了最重要的“css”)

[更新2]

好的,所以我将 css 数据更改为 ' 而不是 ",现在它实际上会解析,但现在我的脚本已损坏,因为我期待原始数据来自数据库的 CSS,有什么方法可以将生成的 'css':'blabla' 更改为: "css":"blabla"

最佳答案

如果您有一个包含有效 JSON 的字符串,则可以使用 JSON.parse() 将其转换为 JavaScript 对象。

假设你有一个字符串:

value = '"id":"3","created":"0000-00-00","parentIDs":null,"childIDs":"","uid":"imdb","title":"Imdb","related":"movies","pos":""';

然后你会这样做:

obj = JSON.parse("{"+value+"}");JSON

请注意,它需要 {} 作为字符串的一部分才能成为有效的 JSON 字符串。

关于jquery - 从字符串创建 JSON,用作对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18232075/

相关文章:

javascript - jquery菜单,悬停并显示:none

jquery - 如何制作bootstrap轮播触摸幻灯片?

jquery - 如何在 jqgrid 内联编辑上添加任何逻辑以在按下回车键时保存行?

javascript - 如何从 Javascript/Google App 脚本中的另一个函数调用数组

python - 我如何从这个 json 响应中提取某些数据?

javascript - Json字符串解析问题

javascript - 强制 Chrome 检查 $.ajax 调用是否已完成?

javascript - 使用 Ajax 分页时缺少元素(Facebook Like 按钮)

Java jackson : JSON value unknown

PHP - 使用 json 将数据表单发布到 Google 文档