Фон
Я пытаюсь использовать protobuff для одного из наших приложений, но у меня возникают проблемы с пониманием протокола, и мне нужна помощь в создании файла .proto
.
Данные
Данные, которые мне нужно кодировать, представляют собой список карт со следующей структурой:
[
{
"AwayTeam": "Osasuna",
"Date": "2017-05-07",
"Div": "SP1",
"FTAG": 1,
"FTHG": 4,
"FTR": "H",
"HTAG": 0,
"HTHG": 2,
"HTR": "H",
"HomeTeam": "Valencia",
"Season": 201617
},
{
"AwayTeam": "Osasuna",
"Date": "2016-02-27",
"Div": "SP2",
"FTAG": 1,
"FTHG": 0,
"FTR": "A",
"HTAG": 0,
"HTHG": 0,
"HTR": "D",
"HomeTeam": "Cordoba",
"Season": 201516
}
]
Каждая карта имеет следующую структуру:
{
"AwayTeam": string, required: true
"Date": string, required: true
"Div": string, required: true
"FTAG": integer, required: true
"FTHG": integer, required: true
"FTR": string, required: true
"HTAG": integer, required: true
"HTHG": integer, required: true
"HTR": string, required: true
"HomeTeam": string, required: true
"Season": integer, required: true
}
Исследования
Моя цель - создать файл .proto, используя proto3
. Поэтому я решил прочитать документацию для файлов .proto3:
https://developers.google.com/protocol-buffers/docs/proto3#maps
Но я был еще более смущен. Согласно документации, у меня не может быть карты, содержащей значения разных типов:
Для этого мне потребуется эквивалент типа JSON object
и проверить документы на .struct.proto
, но на этой странице ничего об этом не упоминается.
Вопрос
Так что я довольно заблудился здесь. Как мне представить упомянутую структуру данных в .proto
?