3

携帯電話のデバイス ID (Android と iPhone の違いによる) を表す、可変数のキーを持つ可能性のある JSON オブジェクトをシリアル化したいと考えています。JSON オブジェクトは、たとえば次のようになります (Android の場合)。

"deviceids":{
        "openudid":"", 
        "androidid":"dcbfXXXXXc2d5f", 
        "imei":"3533XXXXX941712"
        } 

一方、iPhone は次のようになります。

"deviceids":
    {
        "openudid":"37368a5361XXXXXXXXXXdaedc186b4acf4cd4", 
        "ifv":"BD87ECBF-XXXXXXXXXX-DDF46E18129A", 
        "mac":"XXXXXXXXXX", 
        "odin":"2f5672cXXXXXXXXXX2022a5349939a2d7b952", 
        "ifa":"82F7B2AXXXXXXXXXX5-A2DADA99D05B"
        }

Avro では、次のようなスキーマが違いを説明できると考えていました。

{
      "name":"deviceids",
      "type":"record",
      "fields":[
        {
          "type":"array",
          "items":{
            "type":"map",
            "values":"string"
          }
        }
      ]
    }

これは有効な Avro スキーマですか?

4

1 に答える 1