C++的JSON开发包 RapidJSON

MIT
C/C++
跨平台
腾讯
2012-02-01
MiloYip

Rapidjson 是一个 C++ 的快速 JSON 解析器和生成器,使用 SAX/DOM 风格的 API 设计。

示例代码:

// rapidjson/example/simpledom/simpledom.cpp`
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
#include <iostream>

using namespace rapidjson;

int main() {
    // 1. Parse a JSON string into DOM.
    const char* json = "{\"project\":\"rapidjson\",\"stars\":10}";
    Document d;
    d.Parse(json);

    // 2. Modify it by DOM.
    Value& s = d["stars"];
    s.SetInt(s.GetInt() + 1);

    // 3. Stringify the DOM
    StringBuffer buffer;
    Writer<StringBuffer> writer(buffer);
    d.Accept(writer);

    // Output {"project":"rapidjson","stars":11}
    std::cout << buffer.GetString() << std::endl;
    return 0;
}

介绍 PPT 下载:http://www.oschina.net/doc/5711

主要特点:

RapidJSON是一个C++的JSON解析器及生成器。它的灵感来自RapidXml。

  • RapidJSON小而全。它同时支持SAX和DOM风格的API。SAX解析器只有约500行代码。

  • RapidJSON快。它的性能可与strlen()相比。可支持SSE2/SSE4.1加速。

  • RapidJSON独立。它不依赖于BOOST等外部库。它甚至不依赖于STL。

  • RapidJSON对内存友好。在大部分32/64位机器上,每个JSON值只占16或20字节(除字符串外)。它预设使用一个快速的内存分配器,令分析器可以紧凑地分配内存。

  • RapidJSON对Unicode友好。它支持UTF-8、UTF-16、UTF-32 (大端序/小端序),并内部支持这些编码的检测、校验及转码。例如,RapidJSON可以在分析一个UTF-8文件至DOM时,把当中的JSON字符串转码至UTF-16。它也支持代理对(surrogate pair)及"\\u0000"(空字符)。

的码云指数为
超过 的项目
加载中

评论(5)

yi杯酒
yi杯酒
keyide
sgsoft
sgsoft
很好! RapidJSON
calvinwilliams
calvinwilliams
性能比它高一倍的fasterjson笑而不语 RapidJSON
沙枣
沙枣
C++ 没有类似 CPAN 的发布平台吗? RapidJSON
luhaitao_2008
luhaitao_2008
这个不错,可以学习下 #RapidJSON#

28 个 C/C++ 开源 JSON 程序库性能及标准符合程度评测

坊间有非常多的 C/C++ JSON 库,怎么选择是一个难题。 [nativejson-benchmark](https://github.com/miloyip/nativejson-benchmark)应该是史上第一个评测了28个C/C++开源JSON程序库的开源项目...

2015/04/28 14:51

RapidJSON 1.0 正式版发布,C++的JSON开发包

RapidJSON 1.0 正式版发布,该版本在 1.0 Beta 的基础上实现了 100% 单元测试的覆盖率。 其他方面的改进包括: Fixed a bug in trimming long number sequence (4824f12) Fix double quote ...

2015/04/24 07:29

没有更多内容

加载失败,请刷新页面

没有更多内容

6
回答
哪个哥们写的 rapidjson 真不赖啊

哪个哥们写的 rapidjson 真不赖啊 比jsoncpp快了 至少3倍 国产开源还是有牛逼的

2012/10/31 21:06

没有更多内容

加载失败,请刷新页面

没有更多内容

C++ rapidjson的使用

2dx里 rapidjson使用

2014/08/20 16:37
1K
0
C++的JSON开发包 RapidJSON(40款JSON开发包测试综合性能第一)

Rapidjson 是一个 C++ 的快速 JSON 解析器和生成器,使用 SAX/DOM 风格的 API 设计。 示例代码: // rapidjson/example/simpledom/simpledom.cpp`   #include "rapidjson/document.h" ...

2015/05/08 10:37
122
0
好用的C++第三方库

---------------------------------------------------------------------------------------------------------------- 1 x2struct https://github.com/xyz347/x2struct 用于将json/xml/li...

01/14 18:36
34
0
Cocos2d-x移植到WindowsPhone8移植问题-框架rapidjson移植问题

Cocos2d-x 3.0提供了JSON框架rapidjson可以在Windows Phone 8平台使用,如果没有进行必要的配置,在编译的时候会报错,document.h等头文件找不到的错误。 在Windows Phone 8平台移植框架rap...

2014/11/27 20:13
37
0
少有人知的 GitHub 使用技巧

读后试验贡献统计

2014/04/22 09:01
128
0
rapidjson 关于json生成 使用 foat,double精度位数问题

直接修改源码位置(标记位置,是需要精确小数后2位改的): 有需要的朋友可以参考,节省时间。 rapidjson/internal/dtoa.h文件中: inline char* Prettify(char* buffer, int length, int k,...

2018/09/07 12:02
332
0
2013年:一个人奋斗在开源项目上

简要总结我的2013年开源框架开发活动,为今年的独立应用开发拉开序幕。

2014/01/08 10:06
821
0
轻量简单好用的C++JSON库CJsonObject

1. JSON概述 JSON: JavaScript 对象表示法( JavaScript Object Notation) 。是一种轻量级的数据交换格式。 它基于ECMAScript的一个子集。许多编程语言都很容易找到JSON 解析器和 JSON 库。...

2018/07/11 18:42
230
0
Cocos2d-x移植到WindowsPhone8移植问题-libcurl库移植问题

在Cocos2d-x 3.x最新版本中提供了Windows Phone 8平台移植libcurl库所需要的头文件和库文件。但要在Windows Phone 8平台成功移植libcurl库还是很不容易,需要费一些周折,我总结了如下几个步...

2014/11/27 20:38
141
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部