[英]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.