Как исправить "com.google.protobuf.invalidprotocolbufferexception: невозможно найти поле", брошенное из jsonformat.parseJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как исправить "com.google.protobuf.invalidprotocolbufferexception: невозможно найти поле", брошенное из jsonformat.parse

Сообщение Anonymous »

У меня есть 2 модели Protobuf: < /p>

Код: Выделить всё

User< /code>: < /h3>

package demo;

option java_package = "com.stackoverflow.question";
option java_outer_classname = "UserModel";

message User {

message UserHeader {
required int64 userId = 1;
}

required UserHeader header = 1;

extensions 100 to 200;
}
< /code>

Employee< /code>: < /h3>

import "person.proto";

package demo;

option java_package = "com.stackoverflow.question";
option java_outer_classname = "EmployeeModel";

extend demo.User {
optional EmployeeDetails details = 101;
}

message EmployeeDetails {
required string department = 1;
repeated Skill skills = 2;
}

message Skill {
required int64 id = 1;
required string name = 2;
}
< /code>

Я могу создать модель и сериализовать ее на JSON с использованием jsonformat.printer (). print (...) < /code>: < /p>

ExtensionRegistry registry = ExtensionRegistry.newInstance();
EmployeeModel.registerAllExtensions(registry);

UserModel.User.Builder userBuilder = UserModel.User.newBuilder();
userBuilder.setHeader(UserModel.User.UserHeader.newBuilder().setUserId(1000));

EmployeeModel.EmployeeDetails.Builder employeeBuilder = EmployeeModel.EmployeeDetails.newBuilder();
employeeBuilder.setDepartment("Department 1")
.addSkills(EmployeeModel.Skill.newBuilder()
.setId(10_000)
.setName("Skill 10_0000")
.build())
.addSkills(EmployeeModel.Skill.newBuilder()
.setId(11_000)
.setName("Skill 11_0000")
.build());

userBuilder.setExtension(EmployeeModel.details, employeeBuilder.build());

final String json = JsonFormat.printer().print(userBuilder.build());
< /code>

Однако, однако, десериализация сгенерированного JSON обратно в Java Объекты не удастся с Com.google.protobuf.invalidProtocolbufferexception: не удается найти поле: Подробная информация в сообщении demo.user < /code>: < /p>

 em> em> em> em> em> em> em> em> em> em> em> em> em> em> em> em> em> em> em> em> em> em> em> em> em> deseriatization Chail?> 

Подробнее здесь: [url]https://stackoverflow.com/questions/47903567/how-to-fix-com-google-protobuf-invalidprotocolbufferexception-cannot-find-fiel[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»