NiFi如何将JSON字符串数组转换为逗号分隔的纯文本值和子字符串(1024)

v9tzhpje  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(205)

我花了5个小时尝试将字符串值的JSON数组转换为普通的字符串逗号分隔值,并通过子字符串调整长度。
NiFi能做到吗?
例如,开始于

[
    "Charlie was here",
    "Linus was here",
    "Snoopy was here",
    "Sally was here"
]

我正试着把它转换成

Charlie was here,Linus was here,Snoopy was here,Sally was here

因此,如果将上述值存储到名为“myData”的属性中
然后,我可以将它分成子串,以缩短总长度,并且在末尾截断什么内容并不重要。例如,myData:substring(0,1024)
我一直在尝试使用以下处理器,各种组合但一直无法找到正确的使用。

  • 更新属性
  • 评估JSON路径
  • 拆分JSON
  • 合并内容

最接近的是使用splitjson和mergecontent,但内容不包含分隔值的逗号,因此我最终得到

Charlie was hereLinus was hereSnoopy was hereSally was here

只是几乎所有我发现张贴在这里处理文本转换为json,但不是json转换为文本。
这里我遗漏了哪个处理器?

0lvr5msh

0lvr5msh1#

一个选项是使用具有以下规范的***JoltTransformJSON***处理器:

[
  {
    "operation": "shift",
    "spec": {
      "*": "&1[]"
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": "=join(',',@(1,&))"// concatenate all string components separated  by comma
    }
  },
  {// derive the unnested string only 
    "operation": "shift",
    "spec": {
      "*": ""
    }
  }
]

站点http://jolt-demo.appspot.com/上的***演示***为:

相关问题