【问题标题】:removing brackets in json using Apache NIFI使用 Apache NIFI 删除 json 中的括号
【发布时间】:2022-11-03 01:40:12
【问题描述】:

我正在尝试从系列 ID 中删除 {}。

  "seriesID" : "CUUR0000SA0"
}, {
  "seriesID" : "CUSR0000SA0"
}, {
  "seriesID" : "LNS14000000"
}, {
  "seriesID" : "CES0000000001"
}, {
  "seriesID" : "CUUR0000SA0L1E"
}, {
  "seriesID" : "CES0500000003"
}, {
  "seriesID" : "WPUFD4"
}, {
  "seriesID" : "LNS12000000"
}, {
  "seriesID" : "WPSFD4"
}, {
  "seriesID" : "CUSR0000SA0L1E"
}, {
  "seriesID" : "WPUFD49104"
}, {
  "seriesID" : "WPSFD49104"
}, {
  "seriesID" : "LNS13000000"
}, {
  "seriesID" : "LNS11300000"
}, {

我尝试在 NIFI 中使用 jolt 和替换文本,但我无法删除这些括号,任何帮助

【问题讨论】:

  • 你希望你的输出是什么?对应于 seriesID 值的值的数组?还是其中包含多个 seriesID 字段的单个对象?后者不是有效的 JSON(键必须具有唯一值),因此它在 Jolt 中不起作用
  • 我希望输出看起来像这样 "seriesID":"CUUR0000SA0", "seriesID":"CUSR0000SA0", "seriesID":"LNS14000000", "seriesID":"CES0000000001", seriesID":"CUUR0000SA0L1E", "seriesID “:”CES0500000003,“seriesID”:“WPUFD4”,“seriesID”:“LNS12000000”,“seriesID”:“WPSFD4”,“seriesID”:“CUSR0000SA0L1E”,“seriesID”:“WPUFD49104”,“seriesID”: “WPSFD49104”、“seriesID”:“LNS13000000”、“seriesID”:“LNS11300000”、“seriesID”:“CES0500000012”
  • 我想失去{}

标签: apache-nifi


【解决方案1】:

您将无法使用 JSON 库执行此操作,因为结果不是有效的 JSON。如果输入周围没有数组括号,那也不是有效的 JSON。

如果输入周围有数组括号,则可以使用 ConvertRecord 处理器并选择 FreeFormTextRecordSetWriter。在那里您可以选择输出以下内容:

"seriesID": "${seriesID}",

这将为您提供您在输出中描述的内容(末尾的额外逗号除外)。

或者,您应该能够在 ReplaceText 中将 }, { 替换为 ,,尽管您可能需要另一个 ReplaceText 来摆脱第一个和最后一个花括号。

最后,您始终可以使用 ExecuteScript 读取输入并在您认为合适的时候将其写出。

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 2019-11-01
    • 2013-11-11
    • 2016-09-18
    • 1970-01-01
    相关资源
    最近更新 更多