当前位置: 首页 > 知识库问答 >
问题:

使用NiFi将json内容放入字段的Jolt转换

贺高杰
2023-03-14
[
  {
    "id": "1234",
    "Status": "null",
    "Expired": "null",
    "First_Name": "null"
  },
  {
    "id": "5678",
    "Status": "null",
    "Expired": "null",
    "First_Name": "null"
  }
]
[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "id": "[&1].id"
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "*": {
        "Status": "null",
        "Expired": "null",
        "First_Name": "null"
      }
    }
  }
]
[
  {
    "id": "1234",
    "First_Name": "null",
    "Expired": "null",
    "Status": "null"
  },
  {
    "id": "5678",
    "First_Name": "null",
    "Expired": "null",
    "Status": "null"
  }
]
{
  "isInput": true,
  "input": [
    {
      "id": "1234",
      "First_Name": "null",
      "Expired": "null",
      "Status": "null"
    },
    {
      "id": "5678",
      "First_Name": "null",
      "Expired": "null",
      "Status": "null"
    }
  ]
}

这可以使用NiFi JoltTransformJSON来完成吗。例如,将json内容放在“input”字段中,并添加另一个isInput键。如果不是,我是否应该使用带有替换值的replaceText

{
  "isInput": true,
  "input": "${input}"
}

但是,我应该如何将JoltTransform的输出放到${input}字段

共有1个答案

蔺翰音
2023-03-14

您可以将以下两个规范添加到链中:

{
    "operation": "shift",
    "spec": {
      "isInput": "isInput",
      "*": "input[]"
    }
  },
  {
    "operation": "default",
    "spec": {
      "isInput": "true"
    }
  }

但是仅仅使用这个链规范会更短:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "id": "input[&1].id"
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "input[]": {
        "*": {
          "Status": "null",
          "Expired": "null",
          "First_Name": "null"
        }
      },
      "isInput": "true"
    }
  }

]

 类似资料:
  • `我有以下输入json格式,需要转换以下json文件。我正在使用jolt转换,但无法使用https://jolt-demo.appspot.com/#inception网站正确格式化输出 `需要以下使用JOLT Iam的输出json格式,尝试使用JOLT转换进行转换

  • 有人能帮我定义jolt规范,把输入json转换成输出json吗..我在一个文件中输入了json,像{"filename":"test1 "," value":"10"} {"filename":"test2 "," value":"10"}。转换后的输出json应该如下所示:{"filename":"test "," overallvalue":"20 "," filename":[{"filen

  • 在一个Apache NIFI数据流中,我试图将一个日期从MM-dd-yyyy转换成yyyy-MM-DD(MySQL将接受的默认日期格式)。 在带有DSL“链”的JoltTransformJSON 1.15.0处理器的NIFI高级编辑器中,我输入了: 输入Json: 转换Jolt脚本: 结果: 我没有收到任何语法错误。似乎颠簸转型并没有改变任何事情。为什么生日没有变形?

  • 我正在尝试使用JOLT进行JSON转换,我想我已经很接近了,但是我不能做的是为每个当前没有出现的字段添加一个新字段。 我已经阅读了很多教程,下面的代码是我希望能够工作的。然而,它似乎没有添加到新的“名称”字段中。 这是我的震撼: 这是输出: 我希望它是这样的: 谁能告诉我哪里出错了?显然,默认值用于添加新项目,但它似乎没有执行任何操作。

  • 我想在NIFI中使用Jolt处理器实现以下JSON转换 是否有一种方法可以使用现有的Jolt操作来实现这一点,或者我需要编写自定义操作? 谢了。

  • 输入 json : 预期输出: 我想有一个颠簸转换,它可以嵌套很少的田地。