[英]Convert String to an Array in JS
在我的项目中,我有一个如下的用例:
我有一个如下的响应数组,
(4) [{…}, {…}, {…}, {…}]
0:{header: 0, name: "Name", field: "Id"}
1:{header: 3, name: "LastName", field: "Agreement__c"}
2:{header: 3, name: "LastName", field: "Amount__c"}
3:{header: 3, name: "LastName", field: "BIC__c"}
length:4
从上面我通过使用将上面的数组转换为String,
JSON.stringify(responseArray)
并将其存储在字符串字段中。
之后,我想对该字段的值进行动态处理。 因此,当我从字段中获取价值时,如下图所示,
[{"header":0,"name":"Name","field":"Id"},
{"header":3,"name":"LastName","field":"Agreement__c"},
{"header":3,"name":"LastName","field":"Amount__c"},
{"header":3,"name":"LastName","field":"BIC__c"}]
任何人都可以帮助我将上述字符串响应转换为Javascript中的数组,如下所示,
index 0 -> {"header":0,"name":"Name","field":"Id"}
index 1 -> {"header":3,"name":"LastName","field":"Agreement"}
我已经尝试过使用split函数,但是无法满足确切的需求。
将方括号放在字符串的开头和结尾,然后调用JSON.parse
:
$ node
> const text = `{"header":0,"name":"Name","field":"Id"},
{"header":3,"name":"LastName","field":"Agreement"},
{"header":3,"name":"LastName","field":"Amount"},
{"header":3,"name":"LastName","field":"BIC"}`
> JSON.parse(`[${text}]`)
[ { header: 0, name: 'Name', field: 'Id' },
{ header: 3, name: 'LastName', field: 'Agreement' },
{ header: 3, name: 'LastName', field: 'Amount' },
{ header: 3, name: 'LastName', field: 'BIC' } ]
您可以使用以下代码示例,首先在字符串的开头附加"["
在字符串的末尾附加"["
"]"
,这样您的字符串将被很好地格式化为JSON数组,然后使用JSON.parse内置函数轻松解析它
a = '['+'{"header":0,"name":"Name","field":"Id"}, {"header":3,"name":"LastName","field":"Agreement"}, {"header":3,"name":"LastName","field":"Amount"}, {"header":3,"name":"LastName","field":"BIC"}'+"]"
var myarray = JSON.parse(a);
是的, JSON.parse
是真正简单的答案。
您只需要一些基本的字符串操作,顺便说一句,我将您的字符串更改为有效的语法
var str="{\\"header\\":0,\\"name\\":\\"Name\\",\\"field\\":\\"Id\\"},{\\"header\\":3,\\"name\\":\\"LastName\\",\\"field\\":\\"Agreement\\"},{\\"header\\":3,\\"name\\":\\"LastName\\",\\"field\\":\\"Amount\\"},{\\"header\\":3,\\"name\\":\\"LastName\\",\\"field\\":\\"BIC\\"}"; str=str.replace(/},{/g,"}|{"); var arr = str.split("|"); var json = []; for(i=0; i<arr.length; i++){ json.push(JSON.parse(arr[i])); } //console.log(json); console.log(json[0]); console.log(json[1]);
尝试这个
var textstr = '[{"header":0,"name":"Name","field":"Id"},{"header":3,"name":"LastName","field":"Agreement"}, {"header":3,"name":"LastName","field":"Amount"}, {"header":3,"name":"LastName","field":"BIC"}]'; var textstr2 = JSON.parse(textstr); console.log(textstr2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.