2015-07-21 59 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'