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

尝试将JSON转换为AVRO时没有类型错误

江阳夏
2023-03-14

我试图将一个JSON有效负载转换为Avro以发布到一个Kafka主题。但是,当我执行Dataweave转换时,我会得到一个“no type”错误。我不确定是什么导致了这个错误。我最初认为这可能是由于转换不知道入站有效负载上的MIME类型。因此,我已经确保将其设置为application/json,但这并没有什么不同。

Avro模式

{
  "compatibility" : "forward",
  "name": "ContentManagerCoupons",
  "type": "record",
  "namespace": "com.rentpath",
  "fields": [
    {
      "name": "clientID",
      "type": "string"
    },
{
  "name": "outputHistoryId",
  "type": "string"
},
{
  "name": "categoryCoupons",
  "type": {
    "type": "array",
    "items": {
      "name": "categoryCoupons_record",
      "type": "record",
      "fields": [
        {
          "name": "applyBy",
          "type": [
            "string",
            "int",
            "null"
          ]
        },
        {
          "name": "applyPeriod",
          "type": [
            "string",
            "null"
          ]
        },
        {
          "name": "cashValue",
          "type": [
            "int",
            "null"
          ]
        },
        {
          "name": "couponCategory",
          "type": "string"
        },
        {
          "name": "cashOffDesc",
          "type": [
            "string",
            "null"
          ]
        },
        {
          "name": "endDate",
          "type": [
            "string",
            "null"
          ]
        },
        {
          "name": "feeType",
          "type": [
            "string",
            "null"
          ]
        },
        {
          "name": "freeWeeks",
          "type": [
            "string",
            "null"
          ]
        },
        {
          "name": "generatedText",
          "type": "string"
        },
        {
          "name": "leaseby",
          "type": [
            "string",
            "null"
          ]
        },
        {
          "name": "leaseTerm",
          "type": [
            "int",
            "null"
          ]
        },
        {
          "name": "offerText",
          "type": [
            "string",
            "null"
          ]
        },
        {
          "name": "startDate",
          "type": "string"
        },
        {
          "name": "unitType",
          "type": [
            "string",
            "null"
          ]
        }
      ]
    }
  }
}
]
}
{
"outputHistoryId": "55324456",
"clientID": "112345",
"categoryCoupons": [
    {
        "unitType": null,
        "startDate": "07/21/2020",
        "offerText": "This would be the special offer message.",
        "leaseTerm": null,
        "leaseby": null,
        "generatedText": "This would be the special offer message..",
        "freeWeeks": null,
        "feeType": null,
        "endDate": "10/01/2020",
        "couponCategory": "Special Offer",
        "cashValue": null,
        "cashOffDesc": null,
        "applyPeriod": null,
        "applyBy": null
    }
]
}
%dw 2.2
output application/avro schemaUrl="http://schema-registry.domain.com:8081/subjects/Coupon-value/versions/1"
---
payload

共有1个答案

何向荣
2023-03-14

好像对我管用。也许在尝试访问架构时出现了问题。因为我没有访问该URL的权限,所以我用一个本地文件替换了它:

output application/avro schemaUrl="classpath://schema.json"
 类似资料:
  • 有一个网站这样做,但我想要一个图书馆或CLI。 谢了!

  • 搞砸 使用的代码 我无法获得以下输出: 错误信息: 类型错误没有将符号隐式转换为整数 在多条记录的情况下,它可以正常工作 使用的代码

  • 我有一个类似于Pairs的类。我有一个特性,可以将这个类转换成Json格式。 当我使用这个特性时,我得到了以下错误,即对于

  • 我试图使用Kafka rest服务将JSON序列化为Avro对象,将JSON消息发送到Kafka主题,但Kafka rest无法接受JSON消息,错误如下: 我怀疑我正在使用的Avro架构存在问题,因为它是具有可空字段的嵌套记录类型。 Avro架构: Json 消息: 如果有人能帮助我了解问题所在,我将不胜感激。

  • 我正在尝试从地图转换键iterable,但当我这样做时,我得到错误: 统计数字produceTypeData。钥匙不是一种功能 我将遵循这个问题的答案:如何将映射键转换为数组?让它工作。 当我尝试另一种方法(使用)时,我得到一个不同的错误,即: 类型IterableIterator不是数组类型。 在评论中我读到,在本例中,应该将数组括起来。扩展语法中的from()语句,但当我这样做时,我也会得到错

  • 问题内容: 我想创建一个包含我的类的实例变量的JSON字符串。 例如, 会成为: 我研究了几个用于创建JSON的C ++库,它们似乎都异常复杂。我想要类似Javascript的东西。换句话说,只需将std :: map传递给它并接收一个字符串。该地图可能包含其他地图,向量,列表,字符串,数字和布尔值。 最好的方法是什么? 谢谢你的帮助。 编辑 我研究了以下内容: json spirit,jsonc