jsonをprotoメッセージオブジェクトに変換しようとしていますが、$またはのようなjsonに 文字がある場合。または_ InvalidProtocolBufferExceptionが返されます。 マイプロト:protobuf3 JsonFormat InvalidProtocolBufferException認識できない文字
syntax = "proto3";
package messages;
option java_multiple_files = true;
message Main {
A a = 1;
}
message A {
repeated B b = 1;
}
message B {
repeated C c = 1;
}
message C {
map<string, bytes> d = 1;
}
Javaコード:
String json = "{\n" +
" \"a\" : {\n" +
" \"b\" : [ {\n" +
" \"c\" : [ {\n" +
" \"d\" : {\n" +
" \"money\" : [ \"100$\" ]\n" +
" }\n" +
" } ]\n" +
" } ]\n" +
" }\n" +
"}";
Main.Builder builder = Main.newBuilder();
JsonFormat.parser().merge(json, builder);
System.out.println(builder.build());
出力:私の意見では
com.google.protobuf.InvalidProtocolBufferException: com.google.common.io.BaseEncoding$DecodingException: Unrecognized character: $
at com.google.protobuf.util.JsonFormat$ParserImpl.merge(JsonFormat.java:1065)
at com.google.protobuf.util.JsonFormat$Parser.merge(JsonFormat.java:273)
をいるProtobuf変更は、あなたが問題JSONとタイプのユーザーのいるProtobuf定義を追加していただけますか? –
私はそれをしました – idmitriev