我在Windows 10环境中使用jq 1.5。我通过api收到几个信息,包括不同的城市阵列:
{
"cruises": [
{
"waypoint_cities": [
"Palma de Mallorca",
"Cádiz",
"Puerto del Rosario, Fuerteventura",
"Arrecife, Lanzarote",
"Arrecife, Lanzarote",
"Agadir",
"Gibraltar",
"Barcelona",
"Palma de Mallorca"
]}]}
如何使用jq找到这些数组的第一个和最后一个条目?我试过了函数min / maxby,但是这个函数只传递了字母表中第一个和最后一个的字母。
问候 蒂莫
答案 0 :(得分:6)
[0]返回数组中的第一个元素; [-1]返回最后一个。 (参见手册的“基本过滤器”部分。)
对于上面给出的输入
jq '.[][][][0, -1]'
产生此输出
"Palma de Mallorca"
"Palma de Mallorca"
答案 1 :(得分:6)
.cruises[].waypoint_cities | first, last
输出
"Palma de Mallorca"
"Palma de Mallorca"
答案 2 :(得分:-1)
假设数据已解析并存在var data
:
data.cruises[0].waypoint_cities[0]
data.cruises[0].waypoint_cities[data.cruises[0].waypoint_cities.length-1]