Kar*_*wal 23 java json protocol-buffers
我是新手使用protobuf,并想知道是否有一种简单的方法将json流/字符串转换为Java中的protobuf流/字符串?
例如,
protoString = convertToProto(jsonString)
Run Code Online (Sandbox Code Playgroud)
我有一个json字符串,我想解析为protobuf消息.所以,我想首先将json字符串转换为protobuf,然后调用Message.parseFrom()它.
在此先感谢您的帮助!
小智 21
使用proto3,您可以使用JsonFormat执行此操作.它直接从JSON表示解析,因此不需要单独调用MyMessage.parseFrom(...).这样的事情应该有效:
JsonFormat.parser().merge(json_string, builder);
Run Code Online (Sandbox Code Playgroud)
小智 10
//You can use this for converting your input json to a Struct / any other Protobuf Class
import com.google.protobuf.Struct.Builder;
import com.google.protobuf.Struct;
import com.google.protobuf.util.JsonFormat;
import org.json.JSONObject;
JSONObject parameters = new JSONObject();
Builder structBuilder = Struct.newBuilder();
JsonFormat.parser().merge(parameters.toString(), structBuilder);
// Now use the structBuilder to pass below (I used it for Dialog Flow V2 Context Management)
Run Code Online (Sandbox Code Playgroud)