【问题标题】:Extract the value from an array in NiFi从 NiFi 中的数组中提取值
【发布时间】:2023-01-30 19:43:51
【问题描述】:

我有一个具有这种结构的 JSON。

{
  "documentos": [
    {
      "valorNota": 229.2,
      "tipoDocumento": "PRE_NOTA_FISCAL",
      "cnpjEmissorNota": "02130525000177",
      "cnpjRemetente": "02130525000177",
      "cnpjUnidade": "02130525000177",
      "cnpjDestinatario": "14586674000124",
      "valorFreteRealizadoNota": 0,
      "serie": "1",
      "valorFreteCalculadoNota": 1000,
      "tipoOperacao": "SAIDA",
      "dataEmissao": "2022-12-05 11:03:00",
      "numeroNota": 744659
    }
  ],
  "dataEmissaoConhecimento": "2022-12-05 11:03:00.0",
  "localizacaoDestinoConhecimento": 3002171,
  "localizacaoOrigemConhecimento": 3001956,
  "cepOrigemConhecimento": 44079006,
  "cepDestinoConhecimento": 48880000,
  "valorFreteRealizadoConhecimento": 0,
  "oidConhecimento": 10802880097,
  "valorFreteCalculadoConhecimento": 1000
}

我需要提取"numeroNota"的值(可以与评估JsonPath或其他处理器)。

我怎样才能做到这一点?

谢谢

【问题讨论】:

  • EvaluateJsonPath 处理器 -> $.documentos[*].numeroNota
  • 你可以在这里试试,jsonpath.com

标签: json apache text apache-nifi


【解决方案1】:

一种选择是使用转移内的转换规范颠簸变换JSON处理器如

[
  {
    "operation": "shift",
    "spec": {
      "docu*": { //the level of "documentos" array
        "*": { //the indexes of the array
          "numeroN*": "" //yields the value of the attribute without any wrapper
        }
      }
    }
  }
]

返回744659作为当前案例的结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-07
    • 2022-01-18
    • 2017-10-22
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    相关资源
    最近更新 更多