json - Jq:如何将子成员移动到父成员?

标签 json parent-child jq

考虑以下 json:

{
  a: {
    b: {
      c: 1,
      d: 2
    }
  }
}

如何将 b 的所有属性移动到父 a 下:

{
  a: {
    c: 1,
    d: 2,
    b: {}
  }
}

最佳答案

对于这种特殊情况,您可以这样做:

$ jq '.a |= (.b = {}) + .b' input.json

我们在这里更新对象 a原始内容与 b替换为空对象并将其与原始 b 的内容组合.

如果这太难推理,这可能更容易理解:

$ jq '.a |=
    with_entries(if .key == "b"
        then (.value = {}), (.value | to_entries[])
        else .
    end)' input.json

关于json - Jq:如何将子成员移动到父成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42214984/

相关文章:

python - 在flask html页面中访问json数据

java - 尝试反序列化 Json 时出现 JsonMappingException

html - child 不向 parent 拉伸(stretch)

json - 使用 jq,将对象数组转换为具有命名键的对象

json - jq:从对象中选择键的子集

android - 使用 GSON 解析多个对象

javascript - 我的 json 对象在到达我的 Controller 函数时变为 null

javascript - 单击时 JQuery 淡出列表元素

jquery - 如何显示当前li的唯一子节点并隐藏其他li子节点

debugging - 如何调试 jq 向我抛出的 stdin 错误?