色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

json括號深度

羅一凡1年前7瀏覽0評論

在處理 JSON 數據時,一個很重要的概念是括號深度。括號深度指的是 JSON 中花括號和方括號的嵌套層數,可以用于檢查 JSON 格式的正確性、分析 JSON 數據結構等。

// 示例 JSON 數據
{
"name": "小明",
"age": 20,
"hobbies": ["basketball", "music"],
"friends": [
{
"name": "小紅",
"age": 21
},
{
"name": "小強",
"age": 19,
"hobbies": ["reading"]
}
]
}

對于上面的 JSON 數據,我們可以按照以下方式計算括號深度:

{
// 深度為 1
"name": "小明",
"age": 20,
"hobbies": [ // 深度為 2
"basketball",
"music"
],
"friends": [ // 深度為 2
{
"name": "小紅",
"age": 21
},
{ // 深度為 2
"name": "小強",
"age": 19,
"hobbies": [ // 深度為 3
"reading"
]
}
]
}

可以看出,每遇到一個左括號,括號深度就加一;每遇到一個右括號,括號深度就減一。在遍歷 JSON 數據時,可以通過棧來實現括號深度的計算。

function calcJsonDepth(json) {
let depth = 0;
let stack = [];
for (let i = 0; i < json.length; i++) {
let c = json.charAt(i);
if (c === "{" || c === "[") {
depth++;
stack.push(c);
} else if (c === "}" || c === "]") {
depth--;
stack.pop();
}
}
if (stack.length > 0) {
throw new Error("JSON 格式非法!");
}
return depth;
}

上面的代碼實現了一個計算 JSON 括號深度的函數。它遍歷 JSON 字符串中的每個字符,如果是左括號就加深度并把左括號壓入棧中,如果是右括號就減深度并彈出棧中的左括號。最后,如果棧不為空,說明 JSON 格式非法。

在使用 JSON 數據時,通過計算括號深度可以方便地驗證其格式的正確性,并根據括號深度分析 JSON 數據的結構。