//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
转载于:https://blog.51cto.com/10541556/1812837