我有一个这样的输入Json字符串:
var x= "[{\"name\":\"ahmed\",\"age\":\"26\"},
{\"name\":\"Sam\",\"age\":\"25\"}]"
我想按如下方法将其从{到}拆分为字符串列表,而无需删除定界符
var list;
list[0]= {\"name\":\"ahmed\",\"age\":\"26\"}
list[1]= {\"name\":\"Sam\",\"age\":\"25\"}
使用split方法会删除定界符,并且不会产生正确的格式
x= x.replace(/\[\/]/g, '/'); //to remove [ and ]
x= x.replace( /},/ ,'}\n' ); // does not split the string to list of strings
list = x; // type mismatch error since x is a string and list is array
答案 0 :(得分:1)
如Teemu上文所述,使用JSON.parse
是解析json的安全正确的方法。
const x = "[{\"name\":\"ahmed\",\"age\":\"26\"},{\"name\":\"Sam\",\"age\":\"25\"}]";
console.log(JSON.parse(x));
答案 1 :(得分:1)
您可以先将其解析为JSON,然后使用map
从列表中列出。
var parsedX = JSON.parse(x);
var list = parsedX.map(x => JSON.stringify(x).replace(/"/g,'\\"'));
答案 2 :(得分:0)
您可以使用以下代码通过这种特殊类型的json获得所需的结果:
var str = "[{\"name\":\"ahmed\",\"age\":\"26\"}, {\"name\":\"Sam\",\"age\":\"25\"}]";
var list = str.match(/[{][^{}]*[}]/gm);
alert(list)
随时询问您是否有任何问题: