我是靠谱客的博主 糊涂丝袜,最近开发中收集的这篇文章主要介绍Linux——Json发送数据包,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

一:介绍

  JSON(JavaScript Object Notation)是一种 数据交换格式,我们介绍C++中的使用方法。

  使用JsonCpp之前先了解几个主要的类:

Json::Value可以表示库里的所有类型,比如:int string boject,array等
Json::Reader将Json文件流或字符串流解析到Json::Value,主要通过函数parse()
Json::Writer和Json::Reader相反,输出不带格式的Json包
Json::StyleWriter同上,但是输出带格式的Json包
以上类的功能:从字符串解析,从文件解析,写入文件,读取文件,输出Json,读取Json等

二:认识Json字符串

     普通字符串 , Json字符串  ,Json对象的区别。

普通字符串:指使用“双引号”或单引号包括的字符。char str = "hello"
Json字符串:

指符合Json格式要求的额js字符串。

例如:

var jsonStr = "{StudentID:'100' , Name:'wangbao' , Hometown:'USA'}";

Json对象:

指符合Json格式要求的js对象。

例如:

var jsonStr = "{StudentID:100” , Name:“wangbao”, Hometown:“USA”}";

 

三:创建Json包

    方式一:

Json::Value val;
val["name"] = "kebi";
val["password"] = "123456";
//元素值可具有的类型:string,array,true,int等

四:发送Json包

   基于TCP协议:

send(sockfd , toStyledString().c_str() , strlen ( val.toStyledString(). c_str()),0))

   C++ Jsoncpp打包Json函数toStyledString():如果有的项中含有中文,那么使用该函数 生成的字符串中的中文部分变成 u加4个16进制数字。

源代码连接:http://sourceforge.net/projects/jsoncpp/files/  

五:接受并解析Json包

   基于TCP协议:

​//服务器接受数据
if(0 < recv(clifd,buff,127,0))
{
//解析Json包
Json::Value root;
Josn::Reader read;
if(-1 == read.parse(buff,val))//解析函数parse
{
cout<<"read.parse fail:"<<endl;
return 0;
}
//输出Json包
cout<<"name:"<<val["name"].asString()<<endl;
cout<<"password:"<<val["password"].asString()<<endl;
}​

  函数parse(buff,val);将val 这个Json数据包 解析为 Json结构体。

最后

以上就是糊涂丝袜为你收集整理的Linux——Json发送数据包的全部内容,希望文章能够帮你解决Linux——Json发送数据包所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部