我正在尝试按照手册和示例进行操作,如果您想在不输出整个结构的情况下专门在JQ输出中使用冒号元素名称,则它尚不清楚。
Raw:{"UpdateResponseMessage":{"Header":{"com:TransactionID":"5e5b1750-7be7-11e8-886a-838029aca397","com:TimeStamp":"2018-06-29T21:57:08.549Z","com:SourceSystem":"Call","com:Status":"Success"}},"level":"info","message":"UpdateResponseMessage being sent.","timestamp":"2018-06-29T21:57:08.549Z"}
jq-win64 [.] test.log
的输出如下:
[ {
"UpdateResponseMessage": {
"Header": {
"com:TransactionID": "5e5b1750-7be7-11e8-886a-838029aca397",
"com:TimeStamp": "2018-06-29T21:57:08.549Z",
"com:SourceSystem": "Call",
"com:Status": "Success"
}
},
]
我试图仅调用“ com:Status”和“ com:TransactionID”,但是它给了我一个语法错误(INVALID_CHARACTER),或者在我尝试过的所有操作中都没有数据“空”。
以下输出的TransactionID和Status为“ null”。
以前有报道称人们试图弄清(问题741,745,并建议使用jq <x.json '.["key::name"]'
和与上述{{3 }}以及一些变体都尝试遵循该指南,但是questions也没有专门针对这种情况的示例。
以下内容至少不会出错,但不会输出值,名称中包含“:”的两个元素只是“ NULL”。如果我添加```在注释掉的字段中,我再次得到“ Invalid_Character”。
elif .UpdateResponseMessage then
# ( .UpdateResponseMessage .Header | [`.["com::TransactionID"]`] )
( .UpdateResponseMessage .Header | ["Response", `.["com::TransactionID"], .["com::Status"]] )
输出:
“响应”,“空”,“空”
但是我需要的是:
“响应”,“ 5e5b1750-7be7-11e8-886a-838029aca397”,“成功”