【发布时间】:2018-01-21 05:08:28
【问题描述】:
这是我的 JSON 文件
{
"variables": [],
"item":[
{
"name": "Joe",
"item": [
{
"name1": "item1",
"request": {},
"response": []
},
{
"name1": "item2",
"request": {},
"response": []
}
]
},
{
"name": "Jim",
"item": [
{
"name1": "item3",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"//code=gst-70"
]
}
}
],
"request": {},
"response": []
},
{
"name1": "item4",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"//code=gst-50"
]
}
}
],
"request": {},
"response": []
}
]
}
]
}
我的输出必须是:
[{"name":"Joe _ item1","code": }]
[{"name":"Joe _ item2","code": }]
[{"name":"Jim _ item3","code":gst-70}]
[{"name":"Jim _ item4","code":gst-50}]
我正在尝试通过 jq 来实现它,但是 null 事件值使其非常复杂,无法实现上述输出。这可以使用jq完成吗? 这是我的代码:
.item[]
| ("[{\"name\":\"" + .name + " _ " + .item[].name1+",\"code\":") ,
(.item[]?.event[]?.script.exec[0] + "}]" )
【问题讨论】:
-
显示您尝试过的和无效的会很有帮助。
-
就我个人而言,我发现 jq 非常适合超级简单的查询。任何更复杂的事情,我只是用 lodash 创建一个小的 javascript 文件来进行操作。我不喜欢生活在足以应付所有问题的外壳中。