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

Apache Nifi验证嵌套的Json

洪彬
2023-03-14

我正在对嵌套的Json使用Avro模式使用Apache Nifi验证记录。我对JSON中的map字段有特殊问题。

架构:

{
  "type": "record",
  "name": "Test",
  "namespace": "test_events",
  "fields": [
    {
      "name": "id",
      "type": "string"
    },
    {
      "name": "test_attributes",
      "type": {
        "type": "record",
        "name": "test_attributes.instance",
        "fields": [
          {
            "name": "normal_field",
            "type": [
              "null",
              "string"
            ]
          },
          {
            "name": "nested_field",
            "type": [
              "null",
              {
                "type": "map",
                "values": [
                  "null",
                  "int"
                ]
              }
            ]
          }
        ]
      }
    }
  ]
}

Json数据:

{
  "id": "aplhanum123",
  "test_attributes": {
    "normal_field": "normal",
    "nested_field": {
      "meaning": 42
    }
  }
}

无效消息:

此FlowFile中的记录无效,原因如下:;以下1个字段的值类型与架构不匹配:[/test_attributes/nested_field]

我不明白这个信息。我想象Json中的nested_field是有效的映射,因此处理器不应该使处理器失效。我错过了什么?

编辑:*删除了示例JSON中的< code>}。* Nifi-1.7.1,使用JsonTreeReader验证记录

共有1个答案

韦智刚
2023-03-14

发现< code > https://github . com/Apache/nifi/pull/3060/commits/c 66 de 368d 07 f 37 a 8652 c 09 e4b 116 b 232972821 AC 的< code>NIFI-5678(确认存在该错误),该错误已在版本1.8.0中发布。

 类似资料:
  • 问题内容: 使用flask式的微框架,我很难构建一个RequestParser可以验证嵌套资源的。假设期望的JSON资源格式为: 中的每个项目都对应一个对象: …然后使用如下形式创建一个: …但是你将如何验证其中MyObject每个字典的嵌套?或者,这是错误的方法吗? 与此对应的API MyObject本质上将每个对象视为对象文字,并且可能有一个或多个传递给服务;因此,在这种情况下,拼合资源格式将

  • 我想把验证放在角度6中。它应该包含字母数字字符。字母或数字,仅3到9位。如果是数字,则应以1开头。 任何人都可以帮助我进行这些验证吗?

  • 问题内容: 具有角形的这种普通(名称属性由服务器要求)形式,无法弄清楚如何使验证有效。我应该在ng-show =“ TODO”中添加什么 http://jsfiddle.net/Xk3VB/7/ ps:这只是一种形式,更复杂 谢谢 问题答案: AngularJS依靠输入名称来暴露验证错误。 不幸的是,到目前为止,不可能(不使用自定义指令)动态生成输入的名称。确实,检查输入文档,我们可以看到name

  • 在使用空手道框架进行API测试时,我在验证嵌套JSON响应时遇到了一些问题。 JSON响应: null def feed_cycle={item_type:'#string',title:'#string'} def feed_college_dept_branch={branch:'#string'} def feed_college={item_type:'#string',dept:'[]f

  • 但是,我必须验证manager和operator的id是否有效,也就是说,我将验证user表中是否有匹配的id。 所以我想知道如何实现这种验证? 更新1:使用验证器

  • 我使用的是OpenApi规范,这是生成类的代码示例: 我想禁止发送以下请求: 如果我使用了它看起来像: 有什么方法可以使用文件做同样的事情吗?