大佬教程收集整理的这篇文章主要介绍了使用rapidJson解析json文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
今天介绍如果如何使用rapidJson解析json文件~笔者之前也使用过json库,可惜搬到cocos2d-x使用过程出现问题...忘了什么问题,搞了很久解决不了,索性使用COcos2d-x自带的json解析库~
首先引入头文件,#include "cocostudio/Cocostudio.h"
,因为从cocosstudio导入项目的时候会有json文件~
接着就是解析:
std::string filePath = FileUtils::geTinstance()->fullPathForFilename("test.json");
std::string contentStr = FileUtils::geTinstance()->getStringFromFile(filePath);
这里的contentStr其实就是Json文件中的字符串了,打个log看下吧~
接着解析数据_doc.Parse<0>(contentStr.c_str());
,这里的_doc 是rapidjson::Document
类, Json解析库的功能就是把json文件解析成类似map的类~(学过object-c的话就知道, 其实就是Dictionary啦, 总感觉是用C++在写oc,好别扭啊),然后就可以通过[下标]去取到相应的内容。 然后再根据rapidJson 库去取得相应的数据类型。 主要有:
了解以上方法之后,基本就能使用rapidJson解析json文件了。下面说说常见错误:
Calling a private constructor of class 'rapidjson::GenericValue<rapidjson::UTF8<char>,rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator>>'
&
引用,导致调用了private 的构造函数。const ch* GetString()
子类的代码RAPIDJSON_ASSERT(IsObject());
原因可能是你的_doc.Parse<0>()这里填的不是一个json文件的字符串,检查你的文件路径有没有错吧。。。 最后贴一个自己写的Demo
(请无视图片内容)
写了一个定时器,两秒钟后加载json数据,测试了获取字符串,数字,Boolean等,我把rapidjson::value 当成参数传给button,优化代码结构 。
下载地址:http://download.csdn.net/detail/joueu/8231131
转载请注明出处:helkyle.tk
以上是大佬教程为你收集整理的使用rapidJson解析json文件全部内容,希望文章能够帮你解决使用rapidJson解析json文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。