【问题标题】:Split a string into a list of strings将字符串拆分为字符串列表
【发布时间】:2019-04-16 02:52:26
【问题描述】:

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

【问题讨论】:

标签: javascript string replace split substring


【解决方案1】:

您可以使用以下代码通过这种特定类型的 json 实现所需的结果:

var str = "[{\"name\":\"ahmed\",\"age\":\"26\"}, {\"name\":\"Sam\",\"age\":\"25\"}]";
var list = str.match(/[{][^{}]*[}]/gm);

alert(list)

如果您有任何问题,请随时提问:

【讨论】:

    【解决方案2】:

    您可以先将其解析为 JSON,然后使用 map 将其列出。

    var parsedX = JSON.parse(x);
    var list = parsedX.map(x => JSON.stringify(x).replace(/"/g,'\\"'));
    

    【讨论】:

      【解决方案3】:

      正如Teemu 上面评论的那样,使用JSON.parse 是解析json 的安全且正确的方法。

      const x = "[{\"name\":\"ahmed\",\"age\":\"26\"},{\"name\":\"Sam\",\"age\":\"25\"}]";
      
      console.log(JSON.parse(x));

      【讨论】:

        猜你喜欢
        • 2015-09-01
        • 2011-11-13
        • 1970-01-01
        • 1970-01-01
        • 2021-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多