cocos2d-x读取并解析json文件的方法[CSJson]

1.我们准备了一个json文件(test.json),在resource下面:

{
    "data": {
        "lastArea": {
            "areaId": 200,
            "label": 1,
            "name": "我是区服",
            "state": 1
        },
        "topArea": {
            "areaId": 10,
            "label": 0,
            "name": "我是区服",
            "state": 1
        },
        "total": 2
    },
    "rc": 0
}

2.我们在onEnter函数中加入如下代码

	const char *des = NULL;
    std::string jsonpath;
    cs::CSJsonDictionary *jsonDict = NULL;
    jsonpath = CCFileUtils::sharedFileUtils()->fullPathForFilename("test.json");
    unsigned long size = 0;
    des = (char*)(CCFileUtils::sharedFileUtils()->getFileData(jsonpath.c_str(),"r" , &size));
	if(NULL == des || strcmp(des, "") == 0)
	{
		printf("read json file[%s] error!\n", "test.json");
	}
	CSJson::Reader cReader;
	CSJson::Value value;
   if(!cReader.parse(std::string(des), value, false))
   {CCLog("%s", cReader.getFormattedErrorMessages().data());}

这样,我们的value对象中就存储到了json里面的数据。我们则可以取里面的数据。取法如下

	CCLog("areadId:%d, label:%d, name:%s, state:%d", value["data"]["lastArea"]["areaId"].asInt(),
		value["data"]["lastArea"]["label"].asInt(),
		value["data"]["lastArea"]["name"].asCString(),
		value["data"]["lastArea"]["state"].asInt());
时间: 2024-11-05 14:58:44

cocos2d-x读取并解析json文件的方法[CSJson]的相关文章

Java解析JSON文件的方法(一)

一.首先需要在Eclipse工程中导入相关的jar包,jar包参见链接:http://yunpan.alibaba-inc.com/share/link/NdA5b6IFK 二.提供一份待解析的json文件,apkinfo.json如下: [ { "name":"帐号", "package_name":"com.android.account", "check_version":"1.2"

C#解析json文件的方法

C# 解析 json JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的文本格式,可以很容易在各种网络.平台和程序之间传输.JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成. JSON与XML的比较◆可读性 JSON和XML的可读性相比较而言,由于XML提供辅助的标签,更加适合人阅读和理解.◆文件大小与传输 XML允许使用方便的标签,所以文件尺寸是要比J

Java解析JSON文件的方法 (二)

assets文件夹资源的访问 assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件. 1. 先在Activity里面调用getAssets() 来获取AssetManager引用. 2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream. 3. 然后就是用已经open file 的inputStream读取文件,读取完成

Java解析JSON文件的方法

http://blog.sina.com.cn/s/blog_628cc2b70101dydc.html Java代码由两个类组成,一个是读取文件内容的Util类,还有一个是主程序Test类

python解析json文件

概念 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON.XML等.反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态,重新创建该对象. JSON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集. Python2.6开始加入了JSON模块,无需另外下载,Python的Json模

QT开发(六十二)———QT5解析Json文件

QT开发(六十二)---QT5解析Json文件 一.QT5 Json简介 QT4中使用第三方库QJson解析JSON文件. QT5新增加了处理JSON的类,类均以QJson开头,包含在QtCore模块中.QT5新增加六个相关类: QJsonArray 封装 JSON 数组 QJsonDocument 读写 JSON 文档 QJsonObject 封装 JSON 对象 QJsonObject::iterator 用于遍历QJsonObject的STL风格的非const遍历器 QJsonParseE

Android--------使用gson解析json文件

##使用gson解析json文件 **json的格式有两种:** **1. {}类型,及数据用{}包含:** **2. []类型,即数据用[]包含:** 下面用个例子,简单的介绍gson如何解析json,仅使用~ 先发两个json 内容 1.最外层是{} {             "resp": "ok",         "result": {             "date": "2013-4-19 16:

使用rapidJson解析json文件

今天介绍如果如何使用rapidJson解析json文件~笔者之前也使用过json库,可惜搬到cocos2d-x使用过程出现问题...忘了什么问题,搞了很久解决不了,索性使用cocos2d-x自带的json解析库~ 首先引入头文件,#include "cocostudio/CocoStudio.h",因为从cocosStudio导入项目的时候会有json文件~ 接着就是解析: std::string filePath = FileUtils::getInstance()->full

Java性能优化:正确的解析JSON文件

数据收集服务平均1小时OOM(java.lang.OutOfMemoryError: GC overhead limit exceeded)一次,发现都是在下载处理 JSON Atom Feed时OOM.怀疑是处理feed内存峰值消耗过大导致频繁Full GC.如下图: 分析过程 服务每15分钟会从Feed Server下载36个数据文件,包括12个17M,12个18M和12个100多M的文件.数据格式为JSON.由于服务是一次性加载整个JSON文件,然后转换成java对象.这个地方内存消耗可能