携帯電話のデバイス 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 スキーマですか?