[英]Node.js JSON nested array object access
我正在構建一個應用程序,該應用程序從SONARQUBE中的API調用獲取GETS JSON響應。
使用節點js,如何從下面的JSON對象訪問重復的行的值。
我嘗試了以下內容,但始終無法定義。 有沒有支持探索這些對象的庫?
碼
var subrequest = unirest("GET",queryUrl);
subrequest.end(function (resXX) {
if (resXX.error);
for (var key in resXX) {
if (resXX.hasOwnProperty(key)) {
console.log("Checking the id " + resXX[key].msr.duplicated_lines);
}
}
});
JSON
[
{
"id": 1933853,
"uuid": "XXXXXXXXXXXXXX",
"key": "XXXXXXXXXXXX",
"name": "XXXXXXX",
"scope": "PRJ",
"qualifier": "TRK",
"date": "2018-02-16T08:07:55-0500",
"creationDate": "2017-09-20T09:50:05-0400",
"lname": "XXXXXXXX",
"version": "15",
"msr": [
{
"key": "duplicated_lines",
"val": 926192,
"frmt_val": "926,192"
},
{
"key": "bugs",
"val": 7467,
"frmt_val": "7,467"
},
{
"key": "ncloc",
"val": 1369829,
"frmt_val": "1,369,829"
},
{
"key": "code_smells",
"val": 22677,
"frmt_val": "22,677"
},
{
"key": "vulnerabilities",
"val": 95,
"frmt_val": "95"
}
]
}
]
我對您正在訪問的API一無所知,在缺少任何其他信息的情況下,您的代碼很難解釋。 但是,msr是一個數組,因此您需要使用索引訪問其中的對象:
resXX[key].msr.forEach(m => {
if (m.key === 'duplicated_lines') {
console.log('Checking the id ' + m.val);
}
});
我嘗試了以下內容,但始終無法定義
因為您試圖在訪問時將對象value
用作key
。
試試這一行代碼:
var duplicateData = jsonObj[0].msr.filter(item => item.key == 'duplicated_lines');
工作演示
var jsonObj = [ { "id": 1933853, "uuid": "XXXXXXXXXXXXXX", "key": "XXXXXXXXXXXX", "name": "XXXXXXX", "scope": "PRJ", "qualifier": "TRK", "date": "2018-02-16T08:07:55-0500", "creationDate": "2017-09-20T09:50:05-0400", "lname": "XXXXXXXX", "version": "15", "msr": [ { "key": "duplicated_lines", "val": 926192, "frmt_val": "926,192" }, { "key": "bugs", "val": 7467, "frmt_val": "7,467" }, { "key": "ncloc", "val": 1369829, "frmt_val": "1,369,829" }, { "key": "code_smells", "val": 22677, "frmt_val": "22,677" }, { "key": "vulnerabilities", "val": 95, "frmt_val": "95" } ] } ]; var duplicateData = jsonObj[0].msr.filter(item => item.key == 'duplicated_lines'); console.log(duplicateData);
這是迭代響應JSON數組的單行解決方案
resXX.forEach(item => item.msr.forEach(v => v['key']==='duplicated_lines' && console.log(`Checking the id ${v['val']}`)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.