2015-07-21 61 views
1

我試圖解析從某個REST API獲取的json文件。 json有幾個數組,我想根據另一個項目的值從數組中選擇特定的項目。解析json,並根據條件選擇項目鍵

例如:

[ 
    { 
    "item1": true, 
    "item2": "value" 
    }, 
    { 
    "item1": false, 
    "item2": "value" 
    } 
] 

我想檢查,如果物品1是真實的,只有到那時,我想從ITEM2值。

我該如何處理? 我試着用一個名爲下劃線的json解析器,它很棒,但是我不能得到最終結果。

感謝

+0

在循環使用__break__當你拿到假的。 – Nabin

+0

你能幫助一個例子嗎?也許在bash? –

+0

可以在php中顯示嗎? – Nabin

回答

1

首先,你需要解析:

var objJSON = JSON.parse(yourJsontext); 

併爲您病情

if(objJSON[0].item1 === "true"){ 

} 

對於使用jq shell腳本,你的JSON複製到test.json:

jq '.[0].item1' test.json 

你試試jqplay

輸入您的JSON和輸入」。[0] .item1" 作爲過濾

+0

爲什麼不循環? – rolodex

+0

如果json中有數百個這樣的元素會怎麼樣? – Nabin

+0

@benyamin_d太棒了....很高興我能幫到 – Garry

0

如果是從一個AJAX,您不需要解析響應。

$.get('api_url', function(response) { 
    response.forEach(function (key, value) { 
     if (value.item1 == true) { 
      console.log(value.item2) 
      // Do your thing here 
     } 
    } 
} 
0

似乎與下面的jq行的工作:

jq 'map(select(.item1 == true)) | .[].item2'