Нет ничего особенно необычного в пустых строках; однако также вполне возможно, что они являются вложенными сообщениями - просто объектами без каких-либо интересных свойств. Под-сообщение nil (не назначено / пусто / и т. Д.) Вообще не будет присутствовать, но дополнительное сообщение не-nil без какого-либо интересного содержимого будет: двоичная строка нулевого байта (в терминах protobuf).
Аналогично: поле bytes
, которому явно назначен буфер нулевой длины: будет двоичной строкой с нулевым байтом. И: «упакованный» массив с нулевыми элементами: будет двоичной строкой с нулевым байтом.
Итак: ничего необычного здесь - это совершенно нормальный и ожидаемый протобуф для ряда сценариев.
Поскольку номер поля не меняется, он звучит как-то так:
repeated string whatever = 105;
1020 * т.е. *
obj.Whatever = [ "apples1", "", "", "" ];
Странно, но не недействительно.