Nifi逃逸字符“颠簸变换”

问题描述

是否可以在NiFi的JoltTransformJSON处理器中转义管道字符(|)?

我有一个具有许多具有该字符的属性名称的Json,我需要使用JoltTransform对其进行展平,但是如果我在JoltTransform规范中使用管道字符,则会收到一条警告,指出该规范无效。不过,当我用下划线替换所有|时,效果很好。

我想避免这种情况的一种方法是在JoltTransform Processor之前和之后使用replaceText,但是有没有更方便的方法呢?

(当然,我尝试使用\\进行转义,但是它不起作用,我得到同样的警告。)

[更新] 这是输入Json的样子:

[
  {
    "root": "value","first|Level|Array": [
      {
        "firstLevel": [
          "value1"
        ],"second|Level|Array": [
          {
            "secondLevel": [
              "value2"
            ]
          },{
            "secondLevel": [
              "value3"
            ]
          }
        ]
      }
    ]
  }
]

这是预期的输出

{
  "root" : "value","first|Level|Array|firstLevel" : [ "value1" ],"second|Level|Array[0]|secondLevel" : [ "value2" ],"second|Level|Array[1]|secondLevel" : [ "value3" ]
}

还有我希望使用的Jolt规格:

[
  {
    "operation": "shift","spec": {
      "*": {
        "*": "&","first|Level|Array": {
          "*": {
            "*": "&2\\|&","second|Level|Array": {
              "*": {
                "*": "&2\\[&1\\]\\|&"
              }
            }
          }
        }
      }
    }
  }
]

解决方法

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

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

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