我有一个文件,s3解压后有这种格式
{"a": "foo",
"b": "bar",
"c": : "{\"hello\": \"world\"}"}
Run Code Online (Sandbox Code Playgroud)
现在我知道我可以c通过做来解析的值jq '.c | fromjson | .hello'
但是假设我想要这个 json 中的所有值,a, b, and c. 这是我目前拥有的代码片段:
aws s3 cp s3://somebucket/somekey.gz - | gunzip | jq '[.a, .b]'
Run Code Online (Sandbox Code Playgroud)
我如何将抓取值c合并到这个表达式中?
我想要这个 json、a、b 和 c 中的所有值
jq有效 JSON 结构的解决方案:
... | jq '[.a, .b, (.c | fromjson | .[])]'
Run Code Online (Sandbox Code Playgroud)
.[]- 返回数组/对象的所有值输出:
[
"foo",
"bar",
"world"
]
Run Code Online (Sandbox Code Playgroud)