Вы говорите, что количество пар фиксировано. В большинстве случаев, когда число пар фиксировано, это означает, что ключи предсказуемы. В случае , что , лучше всего было бы указать их явно, чтобы вы никогда не отправляли ключи (только номера тегов):
message MyThing {
string foo =1;
string bar = 2;
// ...
string blap = 42;
}
Если ключи не на самом деле предсказуемо, тогда: map<string,string>
. Это идентично вашему сообщению о повторении пары ключ / значение при кодировании, но может иметь более конкретную c / более прямую поддержку во многих реализациях.
Вы всегда можете комбинировать оба, поэтому используйте комбинацию string
поля для известных / предсказуемых ключей и map<string, string>
для неизвестных дополнительных ключей.