将字符串拆分为字符串列表

时间:2018-11-13 09:50:02

标签: javascript string replace split substring

我有一个这样的输入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

3 个答案:

答案 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)

随时询问您是否有任何问题: