cocos2dx jsoncpp

jsoncpp下载 http://sourceforge.net/projects/jsoncpp/

下载解压后用到的是include\json下面的头文件跟src\lib_json下的文件。

导入头文件

#include "json/json.h"

解析json

void parseJsoncpp()
{
    /*{
        "name":"more-top",
            "age":27
    }*/
    unsigned long size;
    char *file = (char *)CCFileUtils::sharedFileUtils()->getFileData("jsoncpptest.json","r",&size);
    Json::Reader reader;
    Json::Value root;
    if (!reader.parse(std::string(file),root,false))
    {
        return ;
    }
    CCLog("jsoncpptest");

    std::string name = root["name"].asString();
    CCLog("name = %s",name.c_str());

    int age = root["age"].asInt();
    CCLog("name = %d",age);

    //---------------------------------------
    /*[
    {"name":"more11","age":100},
    {"name":"more22","age":101}
    ]*/

    file = (char *)CCFileUtils::sharedFileUtils()->getFileData("jsoncpptest2.json","r",&size);
    if (!reader.parse(std::string(file),root,false))
    {
        return ;
    }
    CCLog("jsoncpptest2");

    size = root.size();
    for (int i = 0; i < size; i++)
    {
        std::string name = root[i]["name"].asString();
        CCLog("name = %s",name.c_str());

        int age = root[i]["age"].asInt();
        CCLog("name = %d",age);

    }
}

输出:

jsoncpptest
name = more-top
name = 27
jsoncpptest2
name = more11
name = 100
name = more22
name = 101

创建json

void createJsoncpp()
{
    //[{"age":18,"name":"cocos2dx"},{"age":20,"name":"Hello"}]
    Json::FastWriter writer;
    Json::Value root;
    Json::Value person;

    person["name"] = "cocos2dx";
    person["age"] = 18;
    root.append(person);

    person["name"] = "Hello";
    person["age"] = 20;
    root.append(person);
    string json_file = writer.write(root);

    CCLog("%s",json_file.c_str());
    char filePath[1024] = {‘\0‘};
    memset(filePath,0,sizeof(filePath));
    strcat(filePath,CCFileUtils::sharedFileUtils()->getWritablePath().c_str());
    strcat(filePath,"writeJsoncpp.json");

    FILE *file = fopen(filePath,"w+");
    if (!file)
    {
        return ;
    }

    fwrite(json_file.c_str(),json_file.size(),1,file);
    fclose(file);

}

输出:
[{"age":18,"name":"cocos2dx"},{"age":20,"name":"Hello"}]

时间: 2024-10-16 10:46:33

cocos2dx jsoncpp的相关文章

mac下cocos2dx(带jsoncpp第三方库)编译为android项目心得

在mac下好不容写完了游戏,本以为轻轻松松就能编译为android项目,想不到弄了将近1整天才将问题解决 首先不带jsoncpp的编译方式请参考:http://www.bold-it.com/ios/cocos2d-x-box2d-iosandroid-hybrid-tutorial/ 带jsoncpp第三方库的参考了http://blog.csdn.net/sniffer12345/article/details/7336732,对作者表示感谢. 我使用的是正常的jsoncpp版本,在json

《Cocos2d-x实战 C++卷》上线了-源码-样章-感谢大家的支持

<Cocos2d-x实战 C++卷>上线了 感谢大家一直以来的支持! 全面介绍Cocos开发技巧,采用Cocos2d-x3.2版本,并且详细介绍跨平台移植已经多平台发布细节. · 各大商店均开始销售: 京东:http://item.jd.com/11584534.html 亚马逊:http://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%98-C-%E5%8D%B7-%E5%85%B3%E4%B8%9C%E5%8D%87/dp/B00PTYWTLU 当当:ht

Cocos2d-x 3.x游戏开发之旅

Cocos2d-x 3.x游戏开发之旅 钟迪龙 著   ISBN 978-7-121-24276-2 2014年10月出版 定价:79.00元 516页 16开 内容提要 <Cocos2d-x 3.x游戏开发之旅>是<Cocos2d-x游戏开发之旅>的升级版,修改了Cocos2d-x 2.0版进阶到3.0版后的一些内容,新增了对CocoStudio.UI编辑器.Cocos2d-x 3.x新特性以及网络方面的知识点.主要介绍常用的API使用方式:如何通过官方Demo获取更多关于Coc

【Cocos2d-x游戏开发】解决Cocos2d-x中文乱码的三种方法

众所周知,Cocos2d-x是一款不错的开源引擎,但是在Cocos2d-x中直接使用中文是无法正确显示的.比如下面的情况: 解决这个问题常用的有三种方法:1.通过转换为UTF-8编码来显示.2.使用iconv库来解决.3.使用解析xml或者json文件来解决.这里推荐使用第三种方法来解决,因为比较简单方便,还能支持I18N国际化.下面我们来一一详细了解一下每种解决方案的具体实现: 一.通过转换为UTF-8编码的方式显示出来,建立一个方法用于转换中文到对应的UTF-8编码,具体代码如下: 1 ch

【独立开发者er Cocos2d-x实战 013】Cocos2dx 网络编程实战之星座运势

本篇文章主要内容:jsoncpp的使用,Cocos2dx网络编程,聚合数据星座运势接口使用. 1.jsoncpp使用: jsoncpp的生成请参考博客:Jsoncpp使用详解以及链接问题解决 2.聚合数据星座运势接口使用: 我们先登上聚合数据官网,申请相关的数据后,就可以得到APPKEY等信息,调试如下: 3.Cocos2dx网络编程:源码下载请点击(源码中包括jsoncpp文件) #include "HelloWorldScene.h" #include "CocoStud

【独立开发人员er Cocos2d-x实战 013】Cocos2dx 网络编程实战之星座运势

学习cocos2d-x和cocos creator的圈子:cocos2d-x:436689827    cocos creator:124727696 本篇文章主要内容:jsoncpp的使用,Cocos2dx网络编程,聚合数据星座运势接口使用. 1.jsoncpp使用: jsoncpp的生成请參考博客:Jsoncpp使用具体解释以及链接问题解决 2.聚合数据星座运势接口使用: 我们先登上聚合数据官网.申请相关的数据后,就能够得到APPKEY等信息,调试例如以下: 3.Cocos2dx网络编程:源

《Cocos2d-x实战(卷Ⅰ):C++开发》

基础篇 第1章    准备开始 1.1   本书学习路线图 1.2   使用实例代码 第2章    Cocos2d-x介绍与环境搭建 2.1   移动平台游戏引擎介绍 2.2   Cocos2d家谱 2.3   Cocos2d-x设计目标 2.4   在Windows平台下开始开发Cocos2d-x游戏 2.4.1       使用Visual Studio开发工具 2.4.2       下载和使用Cocos2d-x案例 2.4.3       生成API文档 本章小结 第3章    Hell

jsoncpp使用经验

jsoncpp判断某个字段是否存在的方法如下: 1)if (root["url"].type() != Json::nullValue) 2)if(value["sex"].isNull()) 注意事项 1)jsoncpp是一个c++使用的json库,通过重载中括号[]来实现json的语法,但是由于c++ 是一个强类型的语言,jsoncpp在实现过程中,使用了大量的断言,如果遇到类型不正确的 时候,就会强制断言,导致程序退出 例如,将如下的字符串传递给jsoncpp

Cocos2d-x山西推倒胡+扣点房卡麻将下载架设教程

1.数据库还原修改后台数据库jeefwtwo 表:sys_user8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92 密码(123456)修改游戏数据库 QPPlatformDB表:DataBaseInfo  SQL的地址端口账号密码表:GameRoomInfo  修改服务器的机器标示 PS,搭建的源码必须完整,本文测试源码来自 Cocos2d-x山西推倒胡+扣点房卡麻将maliwl.com 2.执行脚本每个脚本都要执