用jq扁平化/规范化对象的json数组 说明和可视化:

问题描述

我有大量的json对象数组。每个对象都包含一个foreignKeyId,一个url,(可选)一个urlMirror1和一个(可选)一个urlMirror2

这里是一个示例:

[
  {
    "foreignKeyId": 1,"url": "https://1-url.com"
  },{
    "foreignKeyId": 2,"url": "https://2-url.com","urlMirror1": "https://2-url-mirror-1.com",},{
    "foreignKeyId": 3,"url": "https://3-url.com","urlMirror1": "https://3-url-mirror-1.com","urlMirror2": "https://3-url-mirror-2.com"
  }
}

我想将此json标准化为以下内容:

[
  {
    "foreignKeyId": 1,"primariness": 1,"primariness": 2,"url": "https://2-url-mirror-1.com","url": "https://3-url.com"
  },"url": "https://3-url-mirror-1.com","primariness": 3,"url": "https://3-url-mirror-2.com"
  }
}

是否有一种方法可以使用jq做类似的事情?如果没有,还有其他建议可以在不编写太多自定义代码的情况下快速完成此任务吗?这只需要运行一次,因此任何一种hacky一次性解决方案都可以使用(bash脚本等)。

谢谢!

更新primariness应该从键名(url => 1urlMirror1 => 2urlMirror2 => {{1} }。任何给定对象内的键顺序都是微不足道的。有固定数量的镜像(例如,永远不会有3)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)