jsoncpp用法(判断void* pData是否为json格式的字符串)

来源:互联网 发布:ros通过ip绑定mac地址 编辑:程序博客网 时间:2024/06/08 10:23



JsonCpp是我本人非常喜欢的一个Json解析库,有读写模块,实现具有很强的移植性,当时在公司项目中嵌入JsonCpp时,仅仅通过修改了一个读文件的接口就完美的集成了进去,无论是在Windows平台还是在IPhone平台上都运行良好,当时我还当心在IPhone上会碰到什么问题,但是结果是没有碰到任何问题。。。。。。。。。对此,我印象非常深刻。JsonCpp中带有完整的测试套件,对于这样一个底层库,有测试套件存在,让人使用的时候心里放心很多。另外,JsonCpp使用C++的Map特性,(得益于Json语法的简单)可以非常方便的查找需要的任何Json数据,并且效率不低,当然,因为JsonCpp使用了一种DOM方式解析Json文档(参考XML的描述),一次将全部文档都解析了以后,然后再查询使用,使用虽然方便,但是效率上还是逊于SAX方式,但是,对于小规模应用,这应该不是问题。jsoncpp的文件比较少,其实全部拷贝进自己的工程都完全没有问题。jsoncpp的协议是公有领域,也就是说作者完全放弃了版权,你可以随便使用,连版权协议都不用带。需要include的头文件就是json.h,但是需要将include/json下的头文件都拷贝到需要的地方。例子中我为了方便还是用了静态库,将json附带的VS工程的Runtime library改成Multi-threaded Debug DLL (/MDd),(个人习惯使用dll方式进行开发,这个需要和正在进行的工程一致)编译后,生成静态库。


bool CServerSocketItem::SendData(void * pData, WORD wDataSize, WORD wMainCmdID, WORD wSubCmdID, WORD wRountID)
{
char* resulData = new char[wDataSize + 1];
memcpy(resulData, pData, wDataSize);
resulData[wDataSize] = '\0';

std::string stResult = resulData;
Json::Reader readerJson;
Json::Value  valueJson;

if (readerJson.parse(stResult, valueJson))
{
//true  验证通过,可发送
}
else{
return false; //验证失败,不发送,返回
}

}




源码:http://download.csdn.net/detail/chuanyu/8841071

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 2岁幼儿睡眠不好怎么办 2岁宝宝睡眠不好怎么办 9岁儿童睡眠不好怎么办 3岁宝宝老踢被子怎么办 4岁宝宝老踢被子怎么办 四线锁边机跳线怎么办 引流管伤口洞红怎么办 甘蔗卡在喉咙里怎么办 棉花被子生虫了怎么办 绗缝羽绒服钻毛怎么办 宝珠笔没墨水了怎么办 衣服上画的笔印怎么办 黑笔芯弄衣服上怎么办 圆珠笔油在皮上怎么办 不小心吞了水银怎么办 小孩吃了洗发露怎么办? 脸上被铅笔戳了怎么办 小孩吃了铅笔芯怎么办 小孩把橡皮吃了怎么办 用棉签掏耳朵里面疼怎么办 棉签头掉耳朵里怎么办 黑裤子老是粘毛怎么办 新买的裤子掉色怎么办 黑裤子容易粘毛怎么办 裤子粘了全部毛怎么办 纯棉裤子粘毛了怎么办 裤子粘毛怎么办怎么洗 黑裤子洗白了怎么办 新买床单有味道怎么办 新买的床单扎人怎么办 刚买的衣服皱了怎么办 橘子沾到衣服上怎么办 橘子水掉衣服上怎么办 菜汁滴在衣服上怎么办 饺子面和硬了怎么办 化纤衣服烫亮了怎么办 衣服穿久了发亮怎么办 买的毛衣长了怎么办 买的毛衣袖子长怎么办 新买的毛衣扎人怎么办 玻璃光纤线断了怎么办