真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

UDP暢聊系統(tǒng)數(shù)據(jù)的序列化與反序列化

comm中實現(xiàn)基本數(shù)據(jù)的序列化與反序列化

目前創(chuàng)新互聯(lián)公司已為數(shù)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、江油網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

基于jsoncpp庫,由c++編寫,用于為網(wǎng)絡(luò)數(shù)據(jù)提供序列化及反序列化功能

使用的幾個類

Json::Value 可表示所有的類型,int,float,string等

Json::Reader 將json字符串解析到Value中,反序列化,使用Parse函數(shù)

Json::Writer 將Value轉(zhuǎn)換成json字符串型,序列化

它的兩個子類:Json::FastWriter 和Json::StyledWriter 兩種不同的顯示風格

Makefile

 1 ROOT_PATH=$(shell pwd)
  2 INCLUDE=-I$(ROOT_PATH)/lib/include
  3 LIB=-L$(ROOT_PATH)/lib/lib
  4 
  5 my_json:my_json.o udp_data.o
  6     g++ -o $@ $^ $(LIB)  -ljsoncpp
  7 %.o:%.cpp
  8     g++ -c $< $(INCLUDE)    
  9 .PHONY:clean
 10 clean:
 11     rm -f *.o my_json

my_json中編寫序列化與反序列化

my_json.h

  1 #include 
  2 using namespace std;
  3 #include "json/json.h"
  4 #include 
  5 
  6 class my_json
  7 {
  8 public:
  9     my_json();
 10     ~my_json();
 11     static int serialize(string& _out_str,Json::Value& _out_val);
 12     static int deserialize(Json::Value& _val,string& _in_str);
 13 
 14 };
~

my_json.cpp

 1 #include "my_json.h"
  2 
  3 my_json::my_json()
  4 {}
  5 
  6 my_json::~my_json()
  7 {}
  8 
  9 int my_json::deserialize(Json::Value& _val,string& _in_str)
 10 {
 11     Json::Reader _read;
 12     if(_read.parse(_in_str,_val,false))
 13     {
 14         return 0;
 15     }
 16     return -1;
 17 }
 18 int my_json::serialize(string& _out_str,Json::Value& _out_val)
 19 {
 20 #ifdef _DEBUG_
 21     Json::FastWriter _write;
 22     _out_str=_write.write(_out_val);
 23 #else
 24     Json::StyledWriter _write;
 25     _out_str=_write.write(_out_val);
 26 #endif
 27     return 0;
 28 }

udp_data中測試序列化與反序列化

udp_data.h

 1 #include 
  2 using namespace std;
  3 #include 
  4 
  5 class udp_data
  6 {
  7 public:
  8     udp_data();
  9     ~udp_data();
 10     void to_string(string& name,string &msg,string& school,string& cmd,strin    g& _out_str);
 11     void to_value(string& _out_name,string& out_msg,string& out_school,strin    g& out_cmd,string& in_str);
 12 protected:
 13     string _name;
 14     string _msg;
 15     string _school;
 16     string _cmd;
 17 };

udp_data.cpp

 1 #include "udp_data.h"
  2 #include "my_json.h"
  3 udp_data::udp_data()
  4     :_cmd("None")
  5 {}
  6 
  7 udp_data::~udp_data()
  8 {}
  9 
 10 void udp_data::to_string(std::string& name,std::string& msg,std::string& sch    ool,std::string& cmd,std::string& _out_str)
 11 {   
 12     _name=name;
 13     _msg=msg;
 14     _school=school;
 15     _cmd=cmd;
 16     Json::Value root;
 17     root["_name"]=_name;
 18     root["_msg"]=_msg;
 19     root["_school"]=_school;
 20     root["_cmd"]=_cmd;
 21     my_json::serialize(_out_str,root);
 22 }
 23 
 24 void udp_data::to_value(std::string& out_name,std::string& out_msg,std::stri    ng& out_school,std::string& out_cmd,std::string& in_str)
 25 {
 26     Json::Value val;
 27     my_json::deserialize(val,in_str);
 28     out_name=val["_name"].asString();
 29     out_msg=val["_msg"].asString();
 30     out_school=val["_school"].asString();
 31     out_cmd=val["_cmd"].asString();
 32     _name=out_name;
 33     _msg=out_msg;
 34     _school=out_school;
 35     _cmd=out_cmd;
 36 }
 37 
 38 
 39 int main()
 40 {
 41 //  string out_str;
 42     udp_data _data;
 43 //  string name="xiaozhi";
 44 //  string msg="hello world";
 45 //  string school="XPU";
 46 //  string cmd="None";
 47 //  _data.to_string(name,msg,school,cmd,out_str);
 48 //  cout<

序列化運行結(jié)果:

UDP暢聊系統(tǒng)數(shù)據(jù)的序列化與反序列化

反序列化運行結(jié)果:

UDP暢聊系統(tǒng)數(shù)據(jù)的序列化與反序列化


分享題目:UDP暢聊系統(tǒng)數(shù)據(jù)的序列化與反序列化
URL分享:http://weahome.cn/article/jjocoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部