【官方文档】Cocos2d-x 3.0 Json用法
来源:互联网 发布:灵界室友网络剧下载 编辑:程序博客网 时间:2024/05/22 06:53
Cocos2d-x 3.0 Json用法
zeroyang2014-07-28 本文转载自zeroyang 网址:http://cn.cocos2d-x.org/tutorial/show?id=1203
Cocos2d-x 3.0 加入了rapidjson库用于json解析。位于external/json下。
rapidjson 项目地址:http://code.google.com/p/rapidjson/
wiki:http://code.google.com/p/rapidjson/wiki/UserGuide
下面就通过实例代码讲解rapidjson的用法。
使用rapidjson解析json串
引入头文件
12#include "json/rapidjson.h"
#include "json/document.h"
json解析
12345678910111213std::string str =
"{\"hello\" : \"word\"}"
;
CCLOG(
"%s\n"
, str.c_str());
rapidjson::Document d;
d.Parse<0>(str.c_str());
if
(d.HasParseError())
//打印解析错误
{
CCLOG(
"GetParseError %s\n"
,d.GetParseError());
}
if
(d.IsObject() && d.HasMember(
"hello"
)) {
CCLOG(
"%s\n"
, d[
"hello"
].GetString());
//打印获取hello的值
}
打印结果
123cocos2d: {
"hello"
:
"word"
}
cocos2d: word
注意:只支持标准的json格式,一些非标准的json格式不支持。
一些常用的解析方法需要自己封装。注意判断解析节点是否存在。
使用rapidjson生成json串
引入头文件
1234#include "json/document.h"
#include "json/writer.h"
#include "json/stringbuffer.h"
using
namespace
rapidjson;
生成json串
12345678910111213141516171819rapidjson::Document document;
document.SetObject();
rapidjson::Document::AllocatorType& allocator = document.GetAllocator();
rapidjson::Value array(rapidjson::kArrayType);
rapidjson::Value object(rapidjson::kObjectType);
object.AddMember(
"int"
, 1, allocator);
object.AddMember(
"double"
, 1.0, allocator);
object.AddMember(
"bool"
,
true
, allocator);
object.AddMember(
"hello"
,
"你好"
, allocator);
array.PushBack(object, allocator);
document.AddMember(
"json"
,
"json string"
, allocator);
document.AddMember(
"array"
, array, allocator);
StringBuffer buffer;
rapidjson::Writer<StringBuffer> writer(buffer);
document.Accept(writer);
CCLOG(
"%s"
,buffer.GetString());
打印结果
1cocos2d: {
"json"
:
"json string"
,
"array"
:[{
"int"
:1,
"double"
:1,
"bool"
:
true
,
"h
0 0
- 【官方文档】Cocos2d-x 3.0 Json用法
- cocos2d-x 3.0 Json 用法
- Cocos2d-x 3.0 Json用法
- Cocos2d-x 3.0-新的Label-Cocos2d-x官方文档
- Cocos2d-x官方中文文档
- 【cocos2d-x官方文档】Box2D
- Cocos2d-x官方中文文档
- Cocos2d-x官方中文文档
- Cocos2d-x官方中文文档
- Cocos2d-x官方中文文档 v3.x
- Cocos2d-x官方中文文档 v2.x
- [Cocos2d-x v3.x官方文档]Cocos2d-x 3.0坐标系详解 分享0
- Cocos2d-x v3.x官方文档Cocos2d-x 3.0坐标系详解
- [Cocos2d-x v3.x官方文档]Cocos2d-x 3.0坐标系详解
- [Cocos2d-x v3.x官方文档]Cocos2d-x 3.0坐标系详解
- Cocos2d-x 3.0final 终结者系列教程14-新的Label-Cocos2d-x官方文档
- 【cocos2d-x官方文档】动画 Animations
- 【cocos2d-x官方文档】骨骼动画详解
- 算是第一天吧【健身】
- makefile 模版
- shell实例浅谈之判断是可执行文件并存在PATH路径中
- nginx的spdy协议
- 模板类 stack 的理解 积累
- 【官方文档】Cocos2d-x 3.0 Json用法
- 学习SinglePHP
- hadoop2的伪分布式安装
- 32-UITableView基本用法
- hive整合hbase并做测试
- linux下常用命令wget进行整站下载
- Shell 常用命令
- PHP与Mysql使用小结。
- 二叉树的创建及遍历