本文介绍了如何使用JQ根据特定值过滤JSON中的数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用JQ进行筛选,以筛选此JSON中的数组,以便只获得"POLICY_ID":199383的数组,并排除包含不同POLICY_ID值的数组。
{ "links": { "policy_id": 199383, "violations": [ 69892478 ] }, "incident_preference": "PER_CONDITION_AND_TARGET", "closed_at": 1519408001909, "opened_at": 1519407125437, "id": 17821334 } { "links": { "policy_id": 199383, "violations": [ 69889831 ] }, "incident_preference": "PER_CONDITION_AND_TARGET", "closed_at": 1519408011851, "opened_at": 1519406230858, "id": 17820349 } { "links": { "policy_id": 194774, "violations": [ 68446755 ] }, "incident_preference": "PER_POLICY", "closed_at": 1518835775531, "opened_at": 1518835745303, "id": 17422347 } { "links": { "policy_id": 199383, "violations": [ 69892488 ] }, "incident_preference": "PER_CONDITION_AND_TARGET", "closed_at": 1519402345676, "opened_at": 1519401235467, "id": 17821334 }我尝试了一下: Jq‘.Events[]|SELECT(.links.policy_id=="199383")’file.json。却得不到任何回报?有人能帮忙吗?
谢谢
推荐答案jq '.incidents[]| select(.links.policy_id==199383)' file.json应该这样做。
输出
{ "links": { "policy_id": 199383, "violations": [ 69892478 ] }, "incident_preference": "PER_CONDITION_AND_TARGET", "closed_at": 1519408001909, "opened_at": 1519407125437, "id": 17821334 } { "links": { "policy_id": 199383, "violations": [ 69889831 ] }, "incident_preference": "PER_CONDITION_AND_TARGET", "closed_at": 1519408011851, "opened_at": 1519406230858, "id": 17820349 } { "links": { "policy_id": 199383, "violations": [ 69892488 ] }, "incident_preference": "PER_CONDITION_AND_TARGET", "closed_at": 1519402345676, "opened_at": 1519401235467, "id": 17821334 }发件人json
字符串是由零个或多个Unicode字符组成的序列,包含在 双引号,使用反斜杠转义。字符表示为 单个字符串。字符串非常类似于C或Java 字符串。)和
数字非常类似于C或Java数字,不同之处在于八进制 和十六进制格式未使用。所以199383与"199383"明显不同。分别为数字和字符串。
注意:引用文本中的重点是我的。
更多推荐
如何使用JQ根据特定值过滤JSON中的数组
发布评论