我想序列化一个 JSON 对象,该对象具有可能可变数量的键,代表手机设备 ID(由于 Android 和 iPhone 的差异)。例如,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 架构吗?