google.protobuf.json_format.MessageToJson 更改字段名称。如何避免?

Ken*_*tov 5 json protocol-buffers

我有一些协议缓冲区消息对象。所以我想以这种方式序列化它:

import json
from google.protobuf.json_format import MessageToJson

with open("file.json", 'w') as fjs:
    fjs.write(MessageToJson(message_object))
Run Code Online (Sandbox Code Playgroud)

但它改变了对象字段的名称。例如我有这样的对象:

[{
    "id": "333333",
    "creation_timestamp": 2011,
}]
Run Code Online (Sandbox Code Playgroud)

MessageToJson将其字段更改为:

[{
  "id": "333333",
  "creationTimestamp": "2011",
}] 
Run Code Online (Sandbox Code Playgroud)

creation_timestamp更改为creationTimestamp2011完成为"2011"。如何避免?

skg*_*nga 7

我为此阅读了源代码,结果发现您可以将一个选项传递preserving_proto_field_name=TrueMessageToJson.