我有一个字符串:
a = "{u'a':[u'123',u'321'], u'b':[u'456',u'654']}"
我想将此转换为json 数据。
怎么做?
我已经尝试过 JSON.parse(),但它会引发错误。
SyntaxError: Unexpected token u
我有一个字符串:
a = "{u'a':[u'123',u'321'], u'b':[u'456',u'654']}"
我想将此转换为json 数据。
怎么做?
我已经尝试过 JSON.parse(),但它会引发错误。
SyntaxError: Unexpected token u
在我看来,这就像 Python 文字语法。告诉编写 Python 部分的人将其编码为 JSON,而不仅仅是将结构输出为字符串。
在这种特殊情况下,您只需将每个替换u'x'
为即可"x"
,您将拥有有效的 JSON:
var a = "{u'a':[u'123',u'321'], u'b':[u'456',u'654']}";
// Convert to JSON (May not work with other inputs!)
var json = a.replace(/u'((?:[^'\\]|\\.)*)'/g, function(a,str){
return '"' + str.replace(/\\'/g, '\'').replace(/"/g, '\\"') + '"';
});
// Parse the JSON into a Javascript object
var obj = JSON.parse(json);
更新为使用对象中的一些引号:
var a = "{u'a':[u'\\'123\\'',u'321'], u'b':[u'456\\\\',u'\"654\"']}";
变成:
{a:["'123'","321"], b:["456\",""654""]}
您需要将输入字符串更改为有效的 JSON 字符串。
我想这就是你想要的:
JSON.parse('{"a":["123","321"], "b":["456","654"]}')
JSON 应该只包含字符串。
a = "{u'a':[u'123',u'321'], u'b':[u'456',u'654']}"
在这里我只能假设这u
是一个变量。将其更改为:
a = "{"+u+"'a':["+u+"'123',"+u+"'321'], "+u+"'b':["+u+"'456',"+u+"'654']}"
变量(键/值)是字符串,因此需要用引号括起来才能被解析为有效的 JSON。
// 在键/值对周围加上引号。
var a = "{\"u'a'\":[\"u'123'\",\"u'321'\"], \"u'b'\":[\"u'456'\",\"u'654'\"]}";
jQuery
a = $.parseJSON(a);