使用 JOLT 获取子值并设置为父值

Get a child value and set as the parent value using JOLT

我有这个输入 JSON:

{
  "stores": {
    "1100": {
      "metric1": "27",
      "metric2": "3013775",
      "indicator": 8.96
    },
    "1200": {
      "metric1": "2",
      "metric2": "354418",
      "indicator": 5.64
    }
  }
}

并且需要将子指标的值中每个store的值进行转换,像这样:

{
  "stores": {
    "1100": 8.96,
    "1200": 5.64
  }
}

我该怎么做?

您可以像这样使用 shift 转换

[
  {
    "operation": "shift",
    "spec": {
      "stores": {
        "*": {
          "indicator": "&2.&1"
        }
      }
    }
  }
]

其中 "*" 表示 stores 对象的索引。例如,我们遍历 stores 对象的元素,将结果限制为 "indicator" 键的值,其中 &2 表示向上两层并获取键名("stores") 并且 &1 表示向上一层并获取键名指数值("1100","1200")