我是个新手,我有输入json:
{
"2017-09-15": {
"key": "stops",
"node": {
"lastUpdate": "2017-09-15 05:15:26",
"stops": [
{
"stopId": 11000,
"stopCode": null,
"stopName": null,
"stopShortName": "1000",
"stopDesc": "Tom Tail",
"subName": "1000",
"zoneId": null,
"zoneName": null,
"stopUrl": "",
"locationType": null,
"parentStation": null,
"stopTimezone": "",
"wheelchairBoarding": null,
"virtual": null,
"nonpassenger": null,
"depot": null,
"ticketZoneBorder": null,
"onDemand": null,
"activationDate": "2017-09-14"
},
{
"stopId": 1100,
"stopCode": "04",
"stopName": "One Three",
"stopShortName": "1100",
"stopDesc": "Big Wall",
"subName": "04",
"zoneId": 1,
"zoneName": "Demo2",
"stopUrl": "",
"locationType": null,
"parentStation": null,
"stopTimezone": "",
"wheelchairBoarding": null,
"virtual": 0,
"nonpassenger": 0,
"depot": 0,
"ticketZoneBorder": 0,
"onDemand": 0,
"activationDate": "2017-09-24"
}
]
}
}
}我可以通过过滤器获得所有停靠点: jq -r '.[].node.stops‘json
但是如何搜索特定的停靠点,例如基于stopDescr - exact name或包含一个字符串?
谢谢。
发布于 2017-10-26 03:46:42
你走在正确的轨道上。
.[].node.stops[] | select(.stopDesc == "Big Wall")独一无二
有关补充质询:
1) sort和unique都希望数组作为输入
2)调用unique不需要调用sort
3) unique生成一个数组,因此您可能希望使用unique[]
4)将(JSON)值流转换为数组的一种方法是将产生流的表达式包装在方括号中。
下面是一个示例:
[.[].node.stops[] | select(.stopDesc == "Big Wall") | .zoneName]
| uniquehttps://stackoverflow.com/questions/46940636
复制相似问题