我正在尝试将 protobuf 对象转换为 JSON 格式,com.googlecode.protobuf.format.JsonFormat
但该map
类型出乎意料。
我的消息是这样的
message Response {
repeated Candidate candidates = 1;
map<string, ErrorMessage> errors = 2;
}
message ErrorMessage {
string message = 0;
ErrorType type = 1;
}
enum ErrorType {
ERROR = 0;
WARNING = 1;
}
Response
问题是我创建的对象的 JSON 格式
Response response = ...
Return new ResponseEntity<>(new JsonFormat().printToString(response), HttpStatus.OK);
我希望将错误格式化为由字符串值(映射键的)键控的映射
...
"errors": {
"someID" : {
"message": "blah blah",
"type": "ERROR"
}
}
但是实际输出是(我只评估了new JsonFormat().printToString(response)
intellij 中的部分)
...
"errors": {
"key": "someID",
"value": {
"message": "blah blah",
"type": "ERROR"
}
}
我希望这是我错过的一些小配置,以使 protobuf(或杰克逊?)了解实际的键值?不使用“键”和“值”。
顺便说一句,在类型中具有文字“键”和“值”字段有什么意义map
?您不能使用它进行成分查找,您可能只使用自定义类型/对象。