如何将Json Array转换为Avro Schema

时间:2019-07-12 11:31:08

标签: arrays json apache schema avro

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

Jason下方是一种与servicer一起使用enableName的客户端-

如果启动器为true,则表示客户端接受了特定服务 如果启动器为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" ]
    }
  ]

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

再次感谢大家,我尝试并能够获得正确的笑容。正确的Avro模式是-

{
  "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"
            }
          ]
        }
      }
    }
  ]
}