亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

詳解C++的JSON靜態鏈接庫JsonCpp的使用方法

2020-05-23 14:06:23
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C++的JSON靜態鏈接庫JsonCpp的使用方法,演示了使用JsonCpp生成和解析JSON的方法,以及C++通過JSON方式的socket通信示例,需要的朋友可以參考下
 

JsonCpp部署方法:
在http://sourceforge.net/projects/jsoncpp/中下載最新版本的jsoncpp庫源碼。
之后將jsoncpp-src-版本號-tar.gz解壓出來,打開makefiles中的jsoncpp.sln進行編譯,之后build文件夾下的vs71/debug/lib_json中會有一個.lib靜態鏈接庫。


JsonCpp主要包含三種類型的class:Value Reader Writer。

jsoncpp中所有對象、類名都在namespace json中,包含json.h即可

  • Json::Value   :可以表示所有支持的類型,如:int , double ,string , object等
  • Json::Reader :將文件流或字符串創解析到Json::Value中,主要使用parse函數。
  • Json::Writer  :  與JsonReader相反,將Json::Value轉換成字符串流等。

注意:Jsoncpp 的 Json::Writer 類是一個純虛類,并不能直接使用。在此我們使用 Json::Writer 的子類:Json::FastWriter、Json::StyledWriter、Json::StyledStreamWriter。


反序列化Json(解析Json)

{   "name": "xiaoming″,   "like": [     {       "book": "json"     },     {       "food": "apple"     },     {       "music": "sdds"     }   ] }  void ReadJson()  {   std::string strValue = "{/"name/":/"xiaoming/",/"like/":[{/"book/":/"json/"},{/"food/":/"apple/"},{/"music/":/"sdds/"}]}";    Json::Reader reader;   Json::Value value;    if (reader.parse(strValue, value))   {       std::string out = value["name"].asString();     std::cout << out << std::endl;     const Json::Value arrayObj = value["like"];     for (unsigned int i = 0; i < arrayObj.size(); i++)     {         if (!arrayObj[i].isMember("book"))          continue;       out = arrayObj[i]["book"].asString();       std::cout << out;       if (i != (arrayObj.size() - 1))          std::cout << std::endl;     }     }   } 


序列化Json(生成Json):

void WriteJson()  {   Json::Value root;   Json::Value arrayObj;   Json::Value item;    item["food"] = "apple";   item["music"] = "JZhou";   item["book"] = "json";   arrayObj.append(item);    root["name"] = "xiaoming";   root["like"] = arrayObj;    root.toStyledString();   std::string out = root.toStyledString();   std::cout << out << std::endl; } 

通過JSON方式的socket傳輸
1、客戶端:

#include "json//json.h" #include <WinSock2.h>  #pragma comment(lib, "WS2_32.lib") #pragma comment(lib, "json_vc71_libmtd.lib")  int main() {   Json::Value val;   Json::StyledWriter style_write;    val["name"] = "xiaoli" ;    WSADATA wsaData;   SOCKET SendSocket;   sockaddr_in RecvAddr;   int Port = 27015;      //初始化Socket   WSAStartup(MAKEWORD(2, 2), &wsaData);   //創建Socket對象   SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);   //設置服務器地址   RecvAddr.sin_family = AF_INET;   RecvAddr.sin_port = htons(Port);   RecvAddr.sin_addr.s_addr = inet_addr("127.0.0.1");    std::string SendBuf = style_write.write(val);    //向服務器發送數據   sendto(SendSocket, SendBuf.c_str(), SendBuf.size(), 0, (SOCKADDR*)&RecvAddr, sizeof(RecvAddr));    closesocket(SendSocket);   WSACleanup();    getchar();   return 0; } 

2、服務器端:

#include <iostream> #include <WinSock2.h> #include "json/json.h"  #pragma comment(lib, "WS2_32.lib") #pragma comment(lib, "json_vc71_libmtd.lib") int main() {   //初始化socket   WSADATA wsaData;   WSAStartup(MAKEWORD(2,2), &wsaData);   //創建socket   SOCKET RecvSocket;   RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);   //設置服務器地址   sockaddr_in RecvAddr;   int Port = 27015;   RecvAddr.sin_family = AF_INET;   RecvAddr.sin_port = htons(Port);   RecvAddr.sin_addr.s_addr = htonl(INADDR_ANY);   //綁定socket   bind(RecvSocket, (SOCKADDR*)&RecvAddr, sizeof(RecvAddr));    char RecvBuf[1024];   int BufLen = 1024;   sockaddr_in SenderAddr;   int SendAddrSize = sizeof(SenderAddr);    recvfrom(RecvSocket, RecvBuf, BufLen, 0, (SOCKADDR*)&SenderAddr, &SendAddrSize);    std::string strName;   Json::Value val;   Json::Reader reader;   if (reader.parse(RecvBuf, val))   {     strName = val["name"].asString();   }    std::cout << strName << std::endl;    closesocket(RecvSocket);   WSACleanup();    getchar();   return 0; } 
 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久久久免费| 精品久久久久久久久久久久| 日韩中文娱乐网| 国产日韩欧美另类| 蜜月aⅴ免费一区二区三区| 38少妇精品导航| 国产亚洲精品高潮| 欧美电影免费观看| 在线观看国产精品91| 亚洲成人激情在线观看| 欧美日韩在线视频观看| 欧美极品少妇xxxxⅹ免费视频| 欧美色videos| 国产精品福利观看| 成人h片在线播放免费网站| 国产情人节一区| 国产日韩精品在线播放| 亚洲第一免费播放区| 性日韩欧美在线视频| 国产精品久久久久久久久| 国产成人一区二区三区| 国产精品视频区1| 欧美视频在线免费看| 精品欧美aⅴ在线网站| 亚洲精品视频免费在线观看| www.久久久久久.com| 精品亚洲一区二区三区| 日本19禁啪啪免费观看www| 欧美激情中文网| 精品欧美国产一区二区三区| 久久久久久97| 日韩一级裸体免费视频| 精品电影在线观看| 亚洲aaa激情| 亚洲精品有码在线| 欧美激情视频一区二区三区不卡| 国产精品美女免费视频| 精品久久香蕉国产线看观看亚洲| 成人黄色短视频在线观看| 亚洲免费视频一区二区| 国产精品成熟老女人| 中文字幕亚洲综合久久| 国产综合在线观看视频| 欧美自拍视频在线观看| 精品毛片网大全| 成人在线一区二区| 欧美日韩国产成人在线| 91精品国产沙发| 日本一区二区在线免费播放| 91高清视频免费观看| 国产精品一区二区三区久久久| 国产婷婷成人久久av免费高清| 日韩av高清不卡| 欧美激情免费视频| 久久精品国产99国产精品澳门| 九九视频这里只有精品| 亚洲美腿欧美激情另类| 孩xxxx性bbbb欧美| 欧美老女人www| 亚洲字幕在线观看| 亚洲一区二区免费| 亚洲性生活视频| 国产精品揄拍500视频| 日韩少妇与小伙激情| 日韩高清a**址| 欧美精品午夜视频| 日韩中文视频免费在线观看| 亚洲精品短视频| 91色中文字幕| 成人综合国产精品| 国产亚洲精品一区二555| 亚洲最大的网站| 国产香蕉97碰碰久久人人| 亚洲欧美另类自拍| 欧美视频免费在线| 国产午夜精品免费一区二区三区| 日韩中文在线中文网在线观看| 91av视频在线观看| 日韩精品中文字幕视频在线| 国产成人精品一区二区在线| 亚洲一区二区三区成人在线视频精品| 国产又爽又黄的激情精品视频| 亚洲国产福利在线| 精品久久久视频| 日韩美女在线观看一区| 6080yy精品一区二区三区| 欧美美女操人视频| 国产精品www| 久久乐国产精品| 亚洲黄色在线看| 日本aⅴ大伊香蕉精品视频| 久久影院在线观看| 欧美在线亚洲一区| 日本欧美黄网站| 38少妇精品导航| 国产成人一区二区| 亚洲精品自拍第一页| 欧美乱妇40p| 亚洲级视频在线观看免费1级| 亚洲乱亚洲乱妇无码| 91久久久久久| 国内揄拍国内精品| 亚洲va久久久噜噜噜| 亚洲国产成人久久综合| 日韩成人av一区| www.日韩不卡电影av| 精品亚洲aⅴ在线观看| 久久亚洲精品中文字幕冲田杏梨| 欧美最近摘花xxxx摘花| 国产精品一区二区三区毛片淫片| 中文字幕亚洲情99在线| 欧美一级电影在线| 久久免费在线观看| 国产精品嫩草影院久久久| 日本一区二区在线免费播放| 国产精品av在线播放| 国产午夜精品美女视频明星a级| 国产激情久久久| 美日韩精品免费视频| 国产精品美女呻吟| 国内精品久久久久影院优| 国产成人小视频在线观看| 久久久久久久久久久免费精品| 九九热精品在线| 97视频在线观看网址| 国产日韩欧美91| 91av免费观看91av精品在线| 日本在线观看天堂男亚洲| 欧美国产日本高清在线| 欧美精品少妇videofree| 美乳少妇欧美精品| 美女性感视频久久久| 亚洲无亚洲人成网站77777| 欧美中文在线字幕| 久热99视频在线观看| 九色精品免费永久在线| 国产成人精品电影久久久| 成人午夜在线影院| 有码中文亚洲精品| 韩国三级日本三级少妇99| 亚洲国产成人久久综合一区| 97精品在线视频| 91av在线播放视频| 国产精品欧美久久久| 精品视频在线播放色网色视频| 国产91色在线|| 欧美精品第一页在线播放| 国产女人18毛片水18精品| 岛国精品视频在线播放| 国产精品第二页| 尤物九九久久国产精品的分类| 亚洲欧美一区二区精品久久久| 日韩欧美精品免费在线| 日韩av一区在线观看| 欧美大全免费观看电视剧大泉洋| www.日韩视频| 欧美视频在线观看免费| 亚洲国产女人aaa毛片在线| 久久久久久伊人| 国产午夜精品免费一区二区三区| 亚洲精品视频在线播放| 日韩经典一区二区三区| 欧美性感美女h网站在线观看免费| 97精品伊人久久久大香线蕉|