首页 > 代码库 > Cocos2d-x3.0 Json解析

Cocos2d-x3.0 Json解析

在Cocos2dx3.0下,JSON解析库官方已经集成好了,我们引用就OK。

JSON文件hello.json内容

{"pets":["dog","cat"],"stuInfo":{"stuAge":"23","stuName":"zhangsan","birthday":"1990-01-12"},"username":"tomsfff","other":[true,30]}


.h头文件

#include "cocos-ext.h"
#include "json/document.h"


.cpp

 //获取文件路径
        const char* file_path = FileUtils::getInstance()->fullPathForFilename("hello.json").c_str();
       log("external file path = %s",file_path);

        
        rapidjson::Document d1;
        std::string contentStr = FileUtils::getInstance()->getStringFromFile(file_path);
        d1.Parse<0>(contentStr.c_str());
        //打印JSon文件的内容
        printf("%s\n",contentStr.c_str());
        
        //获取JSon中数组的方法
        const rapidjson::Value& v = d1["pets"];
        if (v.IsArray()) {
            //这里一定要注意  变量i 一定要是   unsigned int  不然会报错
            for (unsigned int i = 0; i< v.Size(); ++i) {
                
                 const rapidjson::Value &val = v[i];
                log("%s",val.GetString());
            }
            
        }else
        {
            const rapidjson::Value& val = v["stuAge"];
            log("val.GetString() = %s",val.GetString());
            
        }

Cocos2d-x3.0 Json解析