簡體   English   中英

如何將json從特定的數組字符串解析為數組對象?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM