【问题标题】:Jolt get value of key value pair where key equals host in array of key value pairsJolt 获取键值对的值,其中键等于键值对数组中的主机
【发布时间】:2020-05-12 20:37:44
【问题描述】:

我的 json 对象中有一个键值对数组,需要根据键等于主机提取一个设置值。

{
 "pairs" : [ {
          "key" : "Host",
          "value" : "site-a"
        }, {
          "key" : "User",
          "value" : "user42"
        }
}

我无法根据位置进行匹配,因为它可能位于对数组中的任何位置,并且数组的大小可能会有所不同。

我当前的 Jolt 规格看起来像,但它只是列出了每一对:

[
  {
    "operation": "shift",
    "spec": {
      "requestHeaderFields": {
        "*": {
          "value": "@(1,key)"
        }
      }
    }
  }
]

当前输出为:

{
  "Host" : "site-a",
  "User-Agent" : "user42"
}

我想要的输出如下,注意字段名称的变化:

{
  "HostSite" : "site-a",
}

我想知道我是否需要先进行修改覆盖测试版操作,然后再进行移位?

【问题讨论】:

    标签: json apache-nifi jolt


    【解决方案1】:

    这种颠簸可以解决问题。这个想法是检查 key 何时具有 Host 值,然后检索值:

    [
      {
        "operation": "shift",
        "spec": {
          "pairs": {
            "*": {
              "key": {
                "Host": {
                  "@(2,value)": "HostSite"
                }
              }
            }
          }
        }
      }
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-17
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      相关资源
      最近更新 更多