使用jq

时间:2018-10-02 18:16:10

标签: json jq

我正在尝试使用jq扁平化一些嵌套的JSON。我的第一次尝试是通过使用base64 as per this article在bash中循环JSON。原来执行起来很慢,所以我试图用jq找出一个替代方案。

我有一些像这样的JSON:

[
  {
    "id":117739,
    "officers": "[{\"name\":\"Alice\"},{\"name\":\"Bob\"}]"
  },
  {
    "id":117740,
    "officers":"[{\"name\":\"Charlie\"}]"
  }
]

officers字段也包含一个JSON字符串。我想将其减少为:

[
  { "id":117739, "name":"Alice" },
  { "id":117739, "name":"Bob" },
  { "id":117740, "name":"Charlie" }
]

1 个答案:

答案 0 :(得分:2)

您要展平的数据本身就是JSON,因此您必须使用fromjson进行解析。解析后,您便可以生成新对象。

map({id} + (.officers | fromjson[]))