json示例:
{
"data": {
"sub1": [
{
"sub2": {
"sub3": 32,
"steps": []
}
},
{
"sub2": {
"sub3": 21,
"steps": [
{
"task": [
{
"active": 223,
"activel": 21
}
]
}
]
}
},
{
"sub2": {
"sub3": 234,
"steps": [
{
"task": [
{
"active": 23,
"activel": 2
}
]
}
]
}
},
{
"sub2": {
"sub3": 32,
"steps": [
{
"task": []
}
]
}
}
]
}
}
我试过的:
.data.sub1[]| [try(.sub2.steps[].task[].active) catch "error"]
在jqplay中:https://jqplay.org/s/U2mWmdkhsm5
这是我得到的最接近的一个,但我需要的是它为数组中不存在活动的每个部分写错误。像这样:
"error"
223
23
"error"
这似乎是一个简单的问题,但我不知道如何让它发挥作用,所以提前感谢您的回答。
您可以使用替代运算符//
:
.data.sub1[] | .sub2.steps[].task[].active // "error"
参见操场。