提问者:小点点

在javascript中解析字符串形式的数组


我正在尝试处理来自第三方API的json文档。 返回的数据为字符串格式,并记录如下内容:

{
  "response":{"field1":7,"field2":0,"records":[
      {
        "id":"1",
        "title":["cyx"],
        "doc1":["1","2"],
        "doc2":["\n\t        [\n\t        \t\"1\",\n\t            \"2\",\n\t        ]\n\t    "],
      }]
}

当我尝试处理doc2时,它返回如下字符串:[“1”,“2”,],而不是像doc1的演示那样返回数组。 当我尝试使用json.parse()时,应用程序会抛出一个错误。

下面是这个问题的一个简单演示:https://jsfiddle.net/harpalshergill/39acf4dn/24/

我在想如何解析这个数组而不手动移除空格,\n,\t字符? 谢谢你的帮助。


共1个答案

匿名用户

您可以像示例中那样替换字符

var body = " {\"Warranty\": [ \n { \n \"Name\": \"test\", \n \"Type\": \"test2\", \n \"Months\": \"6\", \n }, \n { \n \"Name\": \"Test6\", \n \"Type\": \"test7\", \n \"Months\": \"6\", \n }, \n { \n \"Name\": \"test9\", \n \"Type\": \"test10\", \n \"Miles\": \"10000\", \n } \n ]} ".replace(/\r?\n|\r/g, "").replace(/\s+/g, "").replace(/,}/g,'}');
var object = JSON.parse(body);