我正在尝试使用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" }
]
答案 0 :(得分:2)
您要展平的数据本身就是JSON,因此您必须使用fromjson
进行解析。解析后,您便可以生成新对象。
map({id} + (.officers | fromjson[]))