我需要從這樣的 JSON 中獲取所有“需要”值:
var body = {"payload":[
{
"analitic": {
"id": 9448,
"name": "Group"
},
"key": 27,
"data": [
{
"id": 35368,
"name": "sku",
"value": "1",
"valueId": "Need_1"
}
]
},
{
"analitic": {
"id": 9448,
"name": "Group"
},
"key": 110,
"data": [
{
"id": 35368,
"name": "sku",
"value": "1",
"valueId": "Need_2"
}
]
}
]
}
我想為此使用 map() 。我在正確的軌道上嗎?我如何獲得這些值?(我縮小了json,原來還有很多我不需要的欄位)
UPD:學習 codecademy 后的解決方案是這樣的:
body.payload.map(function(i) {return i.data.filter(function(j)
{return j.id == 35368}).map(function(k)
{return k.valueId})}).join(",")
// result: "Need_1, Need_2"
uj5u.com熱心網友回復:
考慮到您的“資料”鍵是一個只有 1 個元素的陣列,您可以按如下方式提取陣列中的需要值:
var body = {"payload":[
{
"analitic": {
"id": 9448,
"name": "Group"
},
"key": 27,
"data": [
{
"id": 35368,
"name": "sku",
"value": "1",
"valueId": "Need_1"
}
]
},
{
"analitic": {
"id": 9448,
"name": "Group"
},
"key": 110,
"data": [
{
"id": 35368,
"name": "sku",
"value": "1",
"valueId": "Need_2"
}
]
}
]
}
var res = body['payload'].map((arr)=>arr['data'][0]['valueId']);
console.log(res);
uj5u.com熱心網友回復:
學習codecademy后的解決方案是這樣的:
body.payload.map(function(i) {return i.data.filter(function(j)
{return j.id == 35368}).map(function(k)
{return k.valueId})}).join(",")
// result: "Need_1, Need_2"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/387069.html
標籤:javascript json 解析
上一篇:在AWS中運行r腳本
