json - jq 将命名数组转换为列表
问题描述
如何获取命名数组的名称,将它们作为元素插入其中,然后删除名称?
{
"l1": {
"v1": {
"a": [1],
"b": [2]
},
"v2": {
"a": [3],
"b": [4]
}
},
"l2": {
"v3": {
"a": [5],
"b": [6]
},
"v4": {
"a": [7],
"b": [8]
}
}
}
进入
[
{
"id": ["l1"],
"v1": {
"a": [1],
"b": [2]
},
"v2": {
"a": [3],
"b": [4]
}
},
{
"id": ["l2"],
"v3": {
"a": [5],
"b": [6]
},
"v4": {
"a": [7],
"b": [8]
}
}
]
名称("l1"
, "l2"
)不是先验已知的,其他内容也不是;我所知道的是,我想采用顶级名称并将它们作为"id"
-named 对象插入。
我相信这与使用 jq 将名称/值对数组转换为具有命名键的对象接近。
jq 'to_entries'
开始,但同时嵌入"key"
and "value"
,而我真的只想添加 (prepend) "key"
,甚至更好地控制文字“键”到 (say) "id"
。
解决方案
你在正确的轨道上思考to_entries
:
[to_entries[] | {id: .key} + .value]
努夫说。
推荐阅读
- javascript - 函数生成器优化 JavaScript
- .net - 更改版本号 SED.exe
- html - 消除 3 个不同 div 类之间的差距
- azure - 应用程序网关与 IIS IP 地址和域限制
- hyperledger-fabric - 在 Hyperledger-explorer 上插入一些大数据时出现 RangeError:“size”参数不得大于 2147483647
- php - 如何改进我的查询 - PHP、MSSQL - 两级水平菜单
- python - 使用小批量权重或全局类权重在加权交叉熵中设置 pos_weight?
- c++ - 如何使用 pugixml 从 url 加载 XML 文件
- asp.net-mvc - 所有组件和服务如何访问 MVC+Angular5 项目的 web.config 中定义的 Web.Config Keys
- azure-devops - 在 VSTS API 中排队 yaml 构建导致无法解决参考错误