所以我想创建这个 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 + '}');
但我进入Uncaught SyntaxError: Unexpected token :
了 Chrome。
我试过 JSON.parse 但得到:TypeError: JSON.parse is not a function
在 Chrome 和 Firefox 中,它必须是字符串的格式。我开始怀疑“css”条目,虽然它在第一个“id”条目开始抱怨,但它期待一个函数而不是 JSON?
(我减少了原始 JSON,但忘记了最重要的“css”)
[更新2]
好的,所以我将 css 数据更改为,'
而不是"
,现在它实际上会解析,但现在我的脚本已损坏,因为我期待来自 db 的原始 CSS,任何方式将结果更改'css':'blabla'
为:"css":"blabla"
?