//my_json.h #include"comm.h" #include<iostream> #include<string> #include"json/json.h" using namespace std; class my_json { public: my_json(); ~my_json(); static int serialize(Json::Value& in_val ,string& out_str); static int deserialize(string& in_out,Json::Value& out_val); private: }; //my_json.cpp #include"my_json.h" my_json::my_json() {} int my_json::serialize(Json::Value& in_val ,string& out_str) { #ifdef _FAST_JSON_ Json::FastWriter write; out_str=write.write(in_val); #else Json::StyledWriter write; out_str=write.write(in_val); #endif return 0; } int my_json::deserialize(string& in_str,Json::Value& out_val) { Json::Reader read; if(read.parse(in_str,out_val,false)) { // cout<<in_str<<endl; return 0; } return -1; } my_json::~my_json() {} //udp_data.h #pragma once #include"comm.h" #include"my_json.h" #include<iostream> using namespace std; class udp_data { public: udp_data(); void data_to_string(string& _in_name,string& _in_msg,string& _in_school,string _in_cmd,string& _out_str); void data_to_value(string& _out_name,string& _out_msg,string& _out_school,string& _out_cmd,string& _in_str); ~udp_data(); public: string nick_name; string msg; string school; string cmd; }; //udp_data.cpp #include"udp_data.h" udp_data::udp_data() {} void udp_data::data_to_string(string& _in_name,string& _in_msg,string& _in_school,string _in_cmd,string& _out_str) { nick_name=_in_name; msg=_in_msg; school=_in_school; cmd=_in_cmd; Json::Value root; root["nick_name"]=nick_name; root["msg"]=msg; root["school"]=school; root["cmd"]=cmd; my_json::serialize(root,_out_str); // cout<<_in_name<<endl; // cout<<_out_str<<endl; } void udp_data::data_to_value(string& _out_name,string& _out_msg,string& _out_school,string& _out_cmd,string& _in_str) { Json::Value root; my_json::deserialize(_in_str,root); _out_name=root["nick_name"].asString(); // cout<<_out_name<<endl; _out_msg=root["msg"].asString(); // cout<<_out_msg<<endl; _out_school=root["school"].asString(); _out_cmd=root["cmd"].asString(); nick_name=_out_name; msg=_out_msg; school=_out_school; cmd=_out_cmd; // cout<<cmd; } udp_data::~udp_data() {} //int main() //{ // udp_data ud; // string _name; //// cout<<"please input name: "; //// cin>>_name; // string _msg; //// cout<<"please input msg: "; //// cin>>_msg; // string _school; //// cout<<"please input school: "; //// cin>>_school; // string _cmd; //// cout<<"please input cmd: "; //// cin>>_cmd; // string _out="{\"cmd\":\"None\",\"msg\":\"hello\",\"nick_name\":\"rz\",\"school\":\"xpu\"}"; //// _name="rz"; //// ud.data_to_string(_name,_msg,_school,_cmd,_out); //// _name=""; // ud.data_to_value(_name,_msg,_school,_cmd,_out); //// cout<<_out<<endl; // cout<<_name<<endl; // cout<<_msg<<endl; // cout<<_school<<endl; // cout<<_cmd<<endl; // return 0; //} //Makefile ROOT_PATH=$(shell pwd) INCLUDE=-I../lib/include LIB=#-L$(ROOT_PATH)/lib/lib .PHONY:all all:udp_data udp_data:udp_data.o my_json.o g++ -o $@ $^ /home/xiaozhi/LinuxStudy/project_2/lib/lib/libjsoncpp.a udp_data.o:udp_data.cpp g++ -c $< $(INCLUDE) my_json.o:my_json.cpp g++ -c $< $(INCLUDE) -D _FAST_JSON_ .PHONY:clean clean: rm -f udp_data my_json *.o
jsoncpp序列化与反序列化
原创
©著作权归作者所有:来自51CTO博客作者小止1995的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:数据池+用户表
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【网络】自定义协议 | 序列化和反序列化 | Jsoncpp
json是一个kv键值对的序列化方式,每一个key都对应了一个value这就有点类似c++中的map,不过json能做的更多jso
linux tcp json 序列化 Server -
序列化,反序列化
SerializeTest() { }
java 字节数组 反序列化