【发布时间】:2022-11-24 05:45:33
【问题描述】:
我有一个包含 UN/LOCODE 数据的 26MB JSON 文件,我想从中重组和删除一些数据,以便它在我的应用程序的二进制包中占用更少的空间。
JSON 包含一个对象数组,如下所示:
{
"Change": null,
"Coordinates": "4234N 00135E",
"Country": "AD",
"Date": "0307",
"Function": "--3-----",
"IATA": null,
"Location": "CAN",
"Name": "Canillo",
"NameWoDiacritics": "Canillo",
"Remarks": null,
"Status": "RL",
"Subdivision": null
}
所需的结构是一个对象而不是数组,以国家和位置字段的串联为键,但我感兴趣的唯一嵌套字段是“名称”和“坐标”。
我已经能够完成第一步:
jq 'INDEX("\(.Country)-\(.Location)")'
给我:
{
"AD-CAN": {
"Change": null,
"Coordinates": "4234N 00135E",
"Country": "AD",
"Date": "0307",
"Function": "--3-----",
"IATA": null,
"Location": "CAN",
"Name": "Canillo",
"NameWoDiacritics": "Canillo",
"Remarks": null,
"Status": "RL",
"Subdivision": null
},
...
}
但我无法弄清楚如何从新顶级对象内的嵌套对象中仅获取所需的键。
如果这不能用jq完成,我将不得不求助于自定义脚本来完成它。
【问题讨论】:
-
@knittl 感谢您的编辑修复! :D
标签: jq