[英]How to parse json from the specific array string to array object?
JSON對象:
{
"data": {
"myStatus": "[1 2 21 0 50 0 0 0],[2 1 3 1 50 0 0 0]"
},
"success": true
}
當我們轉換為json對象時,它返回的myStatus只是字符串。 想要按原樣轉換/解析為數組。
通常,它應返回json對象,如下所示。
var jsonObj= JSON.parse(<abovestring>);
jsonObj.data.myStatus[0] => [1 2 21 0 50 0 0 0];
jsonObj.data.myStatus[0][0] => 1
jsonObj.data.myStatus[0][1] => 2
jsonObj.data.myStatus[0][2] => 21
有可能這樣分裂嗎?
您可以結合使用String#split
和Array#map
來執行此操作:
let str = "[1 2 21 0 50 0 0 0],[2 1 3 1 50 0 0 0]"; let arr = str .split(',') .map(item => item.slice(1, -1)) .map(item => item.split(' ')); console.log(arr);
但這是一種非常骯臟的方法,並且如果字符串格式發生更改,則容易出現錯誤。 相反,您應該嘗試修復JSON格式。
列表周圍的引號使JSON.parse
像字符串一樣對待它,因為它實際上是一個字符串。
嘗試通過除去引號其更改為一個有效的數組,加入[]
陣列周圍方括號中,並添加,
元件之間,例如逗號:
{
"data": {
"myStatus": [[1, 2, 21, 0, 50, 0, 0, 0], [2, 1, 3, 1, 50, 0, 0, 0]]
},
"success": true
}
如果您無法控制您的json字符串,並且其中必須包含data.myStatus
的字符串,那么您將需要一個額外的步驟來手動解析它。 例如
var string = jsonObj.data.myStatus;
string = `[${string}]`;
string = string.replace(/ +/g, ',');
jsonObj.data.myStatus = JSON.parse(string);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.