【问题标题】:How to convert Json Array to Avro Schema如何将 Json 数组转换为 Avro 架构
【发布时间】:2019-11-22 04:09:07
【问题描述】:

嘿,我是 Avro Schema 空间的新手,需要将 Jason Array 转换为 Avro Schema。

Jason 下面是一种客户端,它的 serviceName 和 enabler-

如果 Enabler 为 true,则表示特定服务已被客户端使用 如果 Enabler 为 false,则表示客户端未使用特定服务。

{
  "clientName": "Haven",
  "serviceDetailsList": [
    {
      "serviceName": "Service1",
      "enabled": true
    },
    {
      "serviceName": "Service2",
      "enabled": true
    },
    {
      "serviceName": "Service3",
      "enabled": true
    },
    {
      "serviceName": "Service4",
      "enabled": false
    },
    {
      "serviceName": "Service5",
      "enabled": false
    },
    {
      "serviceName": "Service6",
      "enabled": true
    }
 ]
}

我使用了以下架构,但没有得到正确的响应。

"fields":[
    {"name": "serviceName",    "type": [ "Boolean", "false" ]  , "aliases":[ 
    "service1" ]
    },
    {"name": "serviceName",    "type": [ "Boolean", "false" ]  , "aliases":[ 
    "service2" ]
    }
  ]

任何帮助将不胜感激。

【问题讨论】:

  • 你能帮我提供源代码吗,我也遇到同样的问题

标签: arrays json apache schema avro


【解决方案1】:

谢谢大家,我再次尝试并能够获得正确的方案。正确的 Avro Schema 是-

{
  "name": "modelData",
  "type": "record",
  "namespace": "com.hi.model",
  "fields": [
    {
      "name": "clientName",
      "type": "string"
    },
    {
      "name": "serviceDetailsList",
      "type": {
        "type": "array",
        "items": {
          "name": "serviceDetailsList_record",
          "type": "record",
          "fields": [
            {
              "name": "serviceName",
              "type": "string"
            },
            {
              "name": "enabled",
              "type": "boolean"
            }
          ]
        }
      }
    }
  ]
}

【讨论】:

    猜你喜欢
    • 2020-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2020-05-20
    • 2020-10-01
    相关资源
    最近更新 更多