【问题标题】:CaptureChangeMysql Json flow file contains "{0}" OR "{}" instead of "TRUE" or "FALSE" boolean value. How should I convert as Boolean valueCaptureChangeMysql Json 流文件包含“{0}”或“{}”而不是“TRUE”或“FALSE”布尔值。我应该如何转换为布尔值
【发布时间】:2020-06-22 13:53:57
【问题描述】:

[ {
  "id" : 57592,
  "code" : "village1023",
  "created_by_id" : null,
  "created_date" : "Tue Mar 31 23:08:47 IST 2020",
  "l_village_name" : "village1023",
  "modified_by_id" : 70806,
  "modified_date" : "Tue Mar 31 23:08:47 IST 2020",
  "name" : "village1023",
  "status" : "{0}",
  "taluk_id" : 386
} ]

关于如何将从 JSON 接收的值转换为“状态”的任何建议:对于位数据类型中的 MySQL 值“1”,“{0}”为“TRUE”。

【问题讨论】:

  • 不清楚你需要什么。
  • 在来自 CaptureChangeMySQL 处理器的输入 JSON 中,我得到 MySQL 值 1 的值 {0}。我需要将 JSON 值转换为“TRUE”并使用 PutDatabaseRecord 处理器将其插入目标表。我该如何掩饰这个。
  • 我得到了预期的结果,我在表达式中犯了错误。它应该是“UpdateRecord”处理器中的 ${field.value:equals("{0}"):ifElse("TRUE","FALSE")}。
  • @daggett 我正在尝试创建 MySQL 的镜像数据库。为此,我使用“CaptureChangeMySQL”。在我的源数据库中插入或更新记录后,我将从“CaptureChangeMySQL”获取 JSON 流文件,其中 MySQL 中“状态”列的值为“{0}”,其数据类型为“BIT”。我试图在“UpdateRecord”处理器中将其转换为布尔值。它没有被转换,因为我在表达式 ${field.value:equals("{0}"):ifElse("TRUE","FALSE")} 中使用了“status”而不是“field.value”。我发现了问题并修复了它。

标签: apache-nifi


【解决方案1】:

如果要将JSON值内容“{0​​}”替换为true,我们可以使用ReplaceText处理器更新流文件的内容,因此您可以简单地使用ReplaceText处理器来实现报告的场景但仍然如此有自己的局限性。请检查并继续。

https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.5.0/org.apache.nifi.processors.standard.ReplaceText/

【讨论】:

  • 我正在使用带有如下表达式的“UpdateRecord”处理器,但我总是得到 else 部分中的值。我应该如何匹配该值。 ${status:equals("[{0}]"):ifElse("TRUE","FALSE") }
  • @GaneshKumar - 在更新属性处理器中,我们可以使用高级选项根据条件规则匹配属性值。例如,添加规则,例如如果状态等于“{0}”,我们可以添加值为 TRUE 的属性,并为 False 条件添加另一条规则,并将相同的属性名称设置为与给定的 True 条件相同。
  • 我尝试在 UpdateAttribute "advance" 选项中添加一条规则,但该值尚未更改。我得到相同的值 {0}。下面提到的规则。 ${状态:等于(“{0}”)}。请确认所使用的表达式是否正确以匹配 JSON 的值。
  • 可能是给定的表达式无效,尝试表达式 ${status:contains("0")} 并检查输出是否正确并检查前面语句中的错误。
  • 我仍然得到与 {0} 相同的值,而不是“TRUE”。
【解决方案2】:

我得到了预期的结果,我在表达式中犯了错误。它应该是“UpdateRecord”处理器中的 ${field.value:equals("{0}"):ifElse("TRUE","FALSE")}。

Doumentation - Example 5 - Use Expression Language to Modify Value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 2022-11-08
    相关资源
    最近更新 更多