UsageExample
定义
syntax = "proto3";
message ModelDiffSenderConfig {
string kafkaBrokerList = 1;
string kafkaTopic = 2;
}生成CPP文件
# generate proto struct
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:`pwd`/deps/protobuf/lib `pwd`/deps/protobuf/bin/protoc --proto_path=`pwd`/protobuf/proto --cpp_out=`pwd`/protobuf/gen-cpp diffModel.proto model_diff_sender_config.proto输出JSON文件
//
// Created by bovenson on 18-10-11.
//
#include <iostream>
#include <fstream>
#include <fcntl.h>
#include <streambuf>
#include "google/protobuf/io/zero_copy_stream_impl_lite.h"
#include "google/protobuf/util/json_util.h"
#include "model_diff_sender_config.pb.h"
int main() {
ModelDiffSenderConfig modelDiffSenderConfig;
modelDiffSenderConfig.set_kafkabrokerlist("localhost");
// write to json file
std::string jsonStr;
google::protobuf::util::JsonPrintOptions jsonOptions;
jsonOptions.add_whitespace = true;
jsonOptions.always_print_primitive_fields = true;
google::protobuf::util::MessageToJsonString(modelDiffSenderConfig, &jsonStr, jsonOptions);
std::ofstream out("config.json", std::ofstream::out | std::ofstream::trunc);
if (out.is_open()) {
out << jsonStr;
std::cout << "Json output OK" << std::endl;
} else {
std::cout << "ERROR: open file failed" << std::endl;
}
out.close();
return 0;
}config.json
读取JSON配置文件
最后更新于
这有帮助吗?