在Jolt中如何基于jsonarray值进行选择

时间:2019-06-04 05:53:15

标签: apache-nifi jolt

在JOLT中,应基于jsonarray值添加输出键和值。 在输出CO2_VAL,CO_VAL,O3_VAL中,应该基于env_values中的参数值。因此,如何应用上述过滤器。

输入有效载荷为:

{
  "id":"abcd",
  "env_values":[
    {
      "param":"CO2",
      "values":"20.0"
    },
    {
      "param":"CO",
      "values":"21.0"
    },
    {
      "param":"O3",
      "values":"22.0"
    }

    ]
}

输出为:

{
  "sl":"abcd",
  "CO2_VAL":"20.0",
  "CO_VAL":"21.0",
  "O3_VAL":"22.0"
}

1 个答案:

答案 0 :(得分:1)

希望这就是您所提到的。首先,我们在密钥中添加“ _VAL”。在第二个规范中,我们将键设置为值。最后,我们将每个键与值配对。

[
  {
    "operation": "shift",
    "spec": {
      "id": "s1",
      "env_values": {
        "*": {
          "param": {
            "*": "param[&2].t.&_VAL"
          },
          "values": "param[&1].values"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "s1": "s1",
      "param": {
        "*": {
          "t": {
            "*": {
              "$": "param[&3].key"
            }
          },
          "values": "param[&1].value"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "s1": "s1",
      "param": {
        "*": {
          "value": "@(1,key)"
        }
      }
    }
  }
]