我在 StackOverflow 上研究了幾個問題,但找不到相關的答案。
我有一串這樣的陣列:
"[{"insert":"Test"},{"insert":"\n","attributes":{"header":1}},{"insert":"Asdasfff"},{"insert":"\n","attributes":{"list":"bullet"}},{"insert":"Asadsf"},{"insert":"\n","attributes":{"list":"bullet"}},{"insert":"Sfsfsft"},{"insert":"\n","attributes":{"header":2}},{"insert":"Make"},{"insert":"\n","attributes":{"list":"unchecked"}},{"insert":"Back"},{"insert":"\n","attributes":{"list":"checked"}},{"insert":"Ban"},{"insert":"\n","attributes":{"list":"unchecked"}},{"insert":"Fg"},{"insert":"\n","attributes":{"list":"checked"}}]"
我需要將其轉換為陣列,如下所示:

我試過了,JSON.parse()但沒有用!
uj5u.com熱心網友回復:
這是因為\n在您的 JSON 中。這里解釋一下:https : //stackoverflow.com/a/5191059/11749096
function jsonEscape(str) {
return str.replace(/\n/g, "\\\\n").replace(/\r/g, "\\\\r").replace(/\t/g, "\\\\t");
}
var data = `[{"insert":"Test"},{"insert":"\n","attributes": 0}]`;
var dataObj = JSON.parse(jsonEscape(data));
console.log(dataObj);
uj5u.com熱心網友回復:
您沒有陣列字串,在您的情況下,第一個和最后一個雙引號必須是一個引號,因為當您對陣列進行字串化時,它的作業方式如下:
const goo = [{"insert":"Test"},{"insert":"\n","attributes":{"header":1}}]
將其字串化:
JSON.stringify(goo)
'[{"insert":"Test"},{"insert":"\n","attributes":{"header":1}}]'
在這種情況下,您的決議作業如下:
JSON.parse(foo)
0: {insert: 'Test'}
1: {insert: '\n', attributes: {…}}
length: 2
[[Prototype]]: Array(0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/351761.html
標籤:数组 反应 json 细绳 javascript对象
