在JSON和其他字段中解析JSON字符串

时间:2018-01-30 16:53:32

标签: json bash jq

我在s3中有一个文件,当解压缩时会有这种格式的文件

{"a": "foo",
 "b": "bar",
 "c": : "{\"hello\": \"world\"}"}

现在我知道我可以通过执行c

来解析jq '.c | fromjson | .hello'的值

但是,让我说我想要来自这个json的所有值,a, b, and c。这是我目前的代码片段:

aws s3 cp s3://somebucket/somekey.gz - | gunzip | jq '[.a, .b]'

如何将c中的值合并到此表达式中?

1 个答案:

答案 0 :(得分:2)

  

我想要来自这个json,a,b和c

的所有值
有效JSON结构的

jq 解决方案:

... | jq '[.a, .b, (.c | fromjson | .[])]'
  • .[] - 返回数组/对象的所有值

输出:

[
  "foo",
  "bar",
  "world"
]