Convert Protobuf's proto file to json
git clone --recursive https://github.com/thinkcn/proto2json
sh autogen.sh
cd build
#cmake -DCMAKE_INSTALL_PREFIX=./out ..
cmake ..
make
make install
# build x86_64
cmake -DCMAKE_OSX_ARCHITECTURES=x86_64 ..
make
cp proto2json proto2json_x84
# build arm64
cmake -DCMAKE_OSX_ARCHITECTURES=arm64 ..
make
cp proto2json proto2json_arm
# make universal binary
lipo -create -output proto2json proto2json_x84 proto2json_arm
# generate swagger api
proto2json -p ./json -e api ../tests/UserInfo.proto
# generate json
proto2json -p ./json -e json ../tests/UserInfo.proto
# custom gcc --> CMakeLists.txt
SET(CMAKE_C_COMPILER "/usr/local/bin/gcc")
SET(CMAKE_CXX_COMPILER "/usr/local/bin/c++")
# custom gcc --> path
export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++
syntax = "proto3";
package app.center;
message User {
int32 id = 1; // ID
string nick = 2; // nick name
stirng name = 3; // name
string avatarUrl = 4; // url of avatar
}
./proto2json -p out ../tests/User.proto
{
"fields" :
[
{
"comment" : "// ID",
"isRepeated" : false,
"name" : "id",
"number" : "1",
"type" : "int32"
},
{
"comment" : "// nick name",
"isRepeated" : false,
"name" : "nick",
"number" : "2",
"type" : "string"
},
{
"comment" : "// name",
"isRepeated" : false,
"name" : "name",
"number" : "3",
"type" : "stirng"
},
{
"comment" : "// url of avatar ",
"isRepeated" : false,
"name" : "avatarUrl",
"number" : "4",
"type" : "string"
}
],
"name" : "User"
}