我正在尝试解析从某个REST API获取的json文件。 json有一些数组,我想根据另一个项的值从数组中选择一个特定项。
例如:
[
{
"item1": true,
"item2": "value"
},
{
"item1": false,
"item2": "value"
}
]
我想检查item1是否为true,只有这样,我才想从item2获取值。
我该如何处理? 我试过使用一个名为下划线的json解析器,这很好,但我无法得到最终结果。
感谢
答案 0 :(得分: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"作为过滤器
答案 1 :(得分:0)
如果是来自AJAX,则不需要解析响应。
$.get('api_url', function(response) {
response.forEach(function (key, value) {
if (value.item1 == true) {
console.log(value.item2)
// Do your thing here
}
}
}
答案 2 :(得分:0)
它似乎适用于以下jq行:
jq 'map(select(.item1 == true)) | .[].item2'