[−][src]Crate json2pb
convert json object to protobuf message
json2pb is a library for converting json object to protobuf message.
It also provides a commandline program j2pb
. For more information, run j2pb -h
j2pb -f test.json
this can convert test.json to pb message and print the result on the screen(stdout)
j2pb -f test.json -o test.proto
does the same thing but save the result in test.proto
json2pb library
And you can use json2pb in your project just by adding json2pb="*"
in your cargo dependency.
example
use json2pb::parser; use json2pb::pbgen; use nom::error::VerboseError; let json_code = r#" { "name": "deen", "score": 98.5, "list": [ { "i_name": "deen" }, { "i_name": "caibirdme", "i_age": 26 } ], "foo": [] } "#; let json_value = parser::parse_root(json_code).unwrap(); let json_2_pb_ast = pbgen::visit_json_root(&json_value).unwrap(); let generated_pb_message = pbgen::gen_pb_def(&json_2_pb_ast); assert_eq!(generated_pb_message, r#"message root_data { string name = 1; double score = 2; repeated List list = 3; repeated google.protobuf.Any foo = 4; message List { string i_name = 1; int64 i_age = 2; } } "#);
Modules
parser | |
pbgen |
Type Definitions
Result | Common Result |