3.0 alpha 1 的时候,还是jsoncpp, 可这 3.0 beta 之后居然是变 rapidjson 库了
虽然不说两者的优缺点,但是官方就没有一个说明文档,或者 sample 的吗?
我发现一直都没 json 相关的例子,但是框架中又有很多用到 json 的地方,因为大部分是读取 json, 这一步是解决了
可是写入json 的环节一直卡住了,一方面官方(google rapidjson)里也没有明确如何 write,另一方面 cocos2d-x 也没有案例
所以纠结啊……,求助啊
3.0 alpha 1 的时候,还是jsoncpp, 可这 3.0 beta 之后居然是变 rapidjson 库了
虽然不说两者的优缺点,但是官方就没有一个说明文档,或者 sample 的吗?
我发现一直都没 json 相关的例子,但是框架中又有很多用到 json 的地方,因为大部分是读取 json, 这一步是解决了
可是写入json 的环节一直卡住了,一方面官方(google rapidjson)里也没有明确如何 write,另一方面 cocos2d-x 也没有案例
所以纠结啊……,求助啊
这篇文章可以帮到你:http://ju.outofmemory.cn/entry/28362
按文章说的,rapidjosn确实很神速的样子,不过,貌似rapidjson的作者(还是官方?)连文档都没写完,好纠结
遇到同样的问题,不知道楼主解决了没有?
解析json的部分到是解决了,但是现在纠结于这个数据解析的架构,真心不想每个地方都写这些代码,以前的jsoncpp,易用性不错
虽然官方声称现在的rapidjson效率高,不过可能是写游戏写惯了,易用性成了我现在的首要问题,不然以后rapidjson再被其他json替代的话,这工程量大了
而且map和vector,还有value的使用,官方能否给我案例?编译就报错,还是报错在CCMap这些类里面……
====================================================================
我贴一段解析的代码,基本上就是笨木头给的地址,我干净了下
rapidjson::Document document;
document.SetObject();
rapidjson::Document::AllocatorType& allocator = document.GetAllocator();
rapidjson::Value array(rapidjson::kArrayType);
for (int i = 0; i < 10; i++)
{
rapidjson::Value object(rapidjson::kObjectType);
object.AddMember("id", 1, allocator);
object.AddMember("name", "test", allocator);
object.AddMember("version", 1.01, allocator);
object.AddMember("vip", true, allocator);
array.PushBack(object, allocator);
}
document.AddMember("title", "PLAYER INFO", allocator);
document.AddMember("players", array, allocator);
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
document.Accept(writer);
auto out = buffer.GetString();
CCLOG("out: %s", out);
我和你一样,心里想着既然cocox已经集成了json解析库,那就顺着它,它用哪种库我就跟着用哪种,没想到还是摔了一跤(只能怪自己喇,哈哈)
现在用rapidjson都自己再封装了一层了,以后想换就直接换,没那么辛苦,之前真是失策了 
然后,Map、Vector、Value的使用官方有简单的例子,也算够用了:https://github.com/cocos2d/cocos-docs/blob/master/catalog/en.md (里面找找就有了)
数组格式的json 怎么读?