@H_403_1@
@H_403_1@
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方式进行开发,这个需要和正在进行的工程一致)编译后,生成静态库。@H_403_1@
@H_403_1@
bool CServerSocketItem::SendData(void * pData,WORD wDataSize,WORD wMainCmdID,WORD wSubCmdID,WORD wRountID)@H_403_1@ {@H_403_1@ char* resulData = new char[wDataSize + 1];@H_403_1@ memcpy(resulData,pData,wDataSize);@H_403_1@ resulData[wDataSize] = '\0';@H_403_1@ @H_403_1@ std::string stResult = resulData;@H_403_1@ Json::Reader readerJson;@H_403_1@ Json::Value valueJson;@H_403_1@ @H_403_1@ if (readerJson.parse(stResult,valueJson))@H_403_1@ {@H_403_1@ //true 验证通过,可发送@H_403_1@ }@H_403_1@ else{@H_403_1@ return false; //验证失败,不发送,返回@H_403_1@ }@H_403_1@
}
源码:http://download.csdn.net/detail/chuanyu/8841071