В C # я могу определить эти два POCO для определения поколений
public class Family
{
public List<Person> FamilyMembers {get; set;}
}
public class Person
{
public string FirstName {get; set;}
public string LastName {get; set;}
public List<Person> Children {get; set;}
}
Я пытаюсь определить схему AVRO для сериализации FamilyMembers. Возможно ли в Avro определить рекурсивный массив (не уверен, что это правильный термин), вместо того, чтобы указывать каждое поколение в схеме, как показано ниже.
{
"type": "record",
"name": "family",
"namespace": "com.family.my",
"fields": [
{
"name":"familymember",
"type":{
"type": "array",
"items":{
"name":"person",
"type":"record",
"fields":[
{"name":"firstname", "type":"string"},
{"name":"lastname", "type":"string"},
{"name":"children",
"type":{
"type": "array",
"items":{
"name":"children",
"type":"record",
"fields":[
{"name":"firstname", "type":"string"},
{"name":"lastname", "type":"string"},
{"name":"grandchildren",
"type":{
"type": "array",
"items":{
"name":"greatgrandchildren",
"type":"record",
"fields":[
{"name":"firstname", "type":"string"},
{"name":"lastname", "type":"string"}
]
}
}}
]
}
}}
]
}
}
}
]
}