首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏用户2442861的专栏

    rapidJson 的使用

    (); rapidjson::Value array(rapidjson::kArrayType); for (int i = 0; i < 10; i++) { rapidjson::Value object(rapidjson::kObjectType); object.AddMember("id", 1, allocator); ::StringBuffer buffer; rapidjson::Writer<rapidjson::StringBuffer> writer(buffer); document.Accept rapidjson::Value root(rapidjson::kObjectType); root.AddMember("name", "哥伦布啊", allocator); root.AddMember ("gold",1234,allocator); rapidjson::StringBuffer buffer; rapidjson::Writer<rapidjson::StringBuffer

    3.2K30发布于 2018-09-20
  • 来自专栏CDN及云技术分享

    RapidJson的设计实现解读

    一、Rapidjson的DOM表示 DOM对象是不是似曾相熟,比如常听到浏览器解析http响应构建的DOM对象。DOM对象是个语言无关的,保存XML或者HTML文档的树状结构。 1.1 类GenericDocument和类GenericValue 类Document描述了RapidJson的DOM结构。 RapidJSON 还提供另一个分配器 `CrtAllocator`,当中 CRT 是 C 运行库(C RunTime library)的缩写。 Rapidjson大量使用了浅拷贝,如果采用了浅拷贝,注意局部对象的使用 不超过对象生存范围,防止使用了被析构的对象。 二、RapidJson的SAX操作 SAX(Simple API for XML)是对XML的简单操作API的集合。

    3.4K432发布于 2019-11-28
  • 来自专栏蓝天

    rapidjson常见使用示例

    ::Value array(rapidjson::kArrayType);     rapidjson::Value object(rapidjson::kObjectType); // 数组成员     ::Value value(rapidjson::kStringType);     //rapidjson::Value value(rapidjson::kNumberType);     // rapidjson::Value value(rapidjson::kFalseType);     //rapidjson::Value value(rapidjson::kTrueType);     : #include <rapidjson/schema.h> #include <rapidjson/document.h> #include <rapidjson/stringbuffer.h> # /document.h> #include <rapidjson/error/en.h> #include <rapidjson/stringbuffer.h> #include <rapidjson/

    13.5K30发布于 2018-08-06
  • 来自专栏蓝天

    rapidjson常见使用示例

    前言 rapidjson相比jsoncpp性能高出太多,使用接口一样的简单的。官方中文帮助文档:http://rapidjson.org/zh-cn/。 2.  ::Value value(rapidjson::kStringType); //rapidjson::Value value(rapidjson::kNumberType); //rapidjson: :Value value(rapidjson::kFalseType); //rapidjson::Value value(rapidjson::kTrueType); //array.PushBack : bool rapidjson::GenericValue, rapidjson::MemoryPoolAllocator >::Accept, rapidjson::CrtAllocator>, rapidjson ::UTF8, rapidjson::UTF8, rapidjson::CrtAllocator, 0u> >(rapidjson::Writer, rapidjson::CrtAllocator>, 

    8.3K71发布于 2019-03-14
  • C++的RapidJSON库的分析和实践

    本文将介绍RapidJSON库的一些关键特性,并探讨它在性能优化方面所做的实践。RapidJSON简介RapidJSON是一个开源的C++库,专注于解析和生成JSON数据。 RapidJSON具有以下特点:高性能:RapidJSON通过使用原始的C++指针操作、零拷贝技术和内存池来提高解析和生成JSON数据的速度。 RapidJSON的性能优化实践RapidJSON在追求高性能方面采取了多项实践,以下是其中一些重要的优化策略:内存管理优化:RapidJSON使用内存池技术来管理内存分配和释放,避免了频繁的动态内存分配和释放 "rapidjson/stringbuffer.h"#include "rapidjson/filereadstream.h"#include "rapidjson/filewritestream.h 解析JSON#include "rapidjson/document.h"#include "rapidjson/istreamwrapper.h"using namespace rapidjson;int

    1.6K10编辑于 2024-01-20
  • 来自专栏C++知识总结

    C++ 使用 rapidjson 生成 json 并解析

    概述 使用 rapidjson 生成 json 并对其进行解析。 常用函数 AddMember 功能:往对象中添加一个键值对。 GenericValue& rapidjson::GenericValue< Encoding, Allocator >::AddMember( GenericValue< Encoding, 函数原型 GenericValue& rapidjson::GenericValue< Encoding, Allocator >::SetString( const Ch * s, SizeType /prettywriter.h" #include "rapidjson/document.h" #include "rapidjson/istreamwrapper.h" using namespace 文档 rapidjson库的基本使用

    4.7K30发布于 2019-11-06
  • 来自专栏独行猫a的沉淀积累总结

    hiredis和rapidjson库的使用小结

    RapidJSON的所有公开类型及函数都在rapidjson命名空间中。 std::string objectToString(const rapidjson::Value& valObj) { rapidjson::StringBuffer buffer; rapidjson ; //rapidjson::Value root(rapidjson::kObjectType); rapidjson::Value key(rapidjson::kStringType); rapidjson 的简单使用_宁静深远的博客-CSDN博客_rapidjson使用 RapidJSON简介及使用_fengbingchun的博客-CSDN博客_rapidjson C++ rapidjson 基础入门_众秒之童的博客 -CSDN博客_rapidjson C++ RapidJson常用用法示例 - 简书 jsoncpp和rapidjson哪个好用?

    1.5K20编辑于 2022-05-07
  • 来自专栏月亮与二进制

    C++ RapidJson常用用法示例

    C++对Json字符串和对象的转换使用没有直接的库,所以RapidJson就成了最常用的解析库,教程有大量详尽的用法示例,这里仅筛选出最常用的用法做完整示例,包括: 字符串转json对象 json对象键值对获取 university":{ "name":"HUST", "location":"wuhan" } } 代码如下: #include <iostream> #include "rapidjson /document.h" #include <vector> #include "rapidjson/stringbuffer.h" #include "rapidjson/writer.h" using namespace std; using namespace rapidjson; int main() { // json字符串 string jsonStr = "{\"name /zh-cn/md_doc_tutorial_8zh-cn.html rapidjson库的基本使用:https://blog.csdn.net/qq849635649/article/details

    3K10发布于 2021-11-23
  • 来自专栏月亮与二进制

    RapidJson递归去除空值元素Value

    RapidJson是一款高效的C++处理JSON字符串的库。 教程:http://rapidjson.org/zh-cn/md_doc_tutorial_8zh-cn.html#QueryObject 源码:https://github.com/Tencent/ rapidjson 但不得不说教程写的不太全,网上资料也很少,大都重复教程的范畴。 项目中有个蛋疼的需求要把JSON字符串中值为空的键值对去掉,C++下处理字符串本就难受,幸亏有RapidJson帮忙。 postParm = HandleJsonString((char*)jsonString.data()); } 首先是HandleJsonString方法,该方法用于接收要处理的json字符串,解析成RapidJson

    2K20发布于 2021-11-23
  • 来自专栏程序手艺人

    C++之rapidjson构造Json数据集合

    本文链接:https://blog.csdn.net/z2066411585/article/details/102769384 项目中用到rapidjson开源库,用于json数据的解析和封装. strObject.SetString(StringRef(lang_list[i].GetString())); langList.PushBack(strObject,allocator); } 参考 rapidjson

    1.6K20发布于 2019-10-28
  • 来自专栏C++开发学习交流

    【C++】开源:rapidjson数据解析库配置与使用

    项目介绍 项目Github地址:https://github.com/Tencent/rapidjson RapidJSON 是一个快速的 C++ JSON 解析器/生成器,具有高效的内存利用和低延迟。 RapidJSON 的特点包括: 1.快速高效:RapidJSON 通过最大程度地优化内存使用和计算效率来实现快速的 JSON 解析和生成,它在性能上表现出色。 使用说明 下面进行使用分析: 解析json数据示例: #include <iostream> #include "rapidjson/document.h" #include "rapidjson/writer.h /document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h" #include <iostream> int main() { rapidjson::Document document; document.SetObject(); // 添加字符串类型数据 rapidjson

    1.2K10编辑于 2024-07-24
  • 来自专栏ccf19881030的博客

    使用rapidJson C++库生成JSON字符串

    /rapidjson.org/zh-cn/,从这里可以看到它的详细说明文档;对应的Github地址为:https://github.com/Tencent/rapidjson,从rapidjson-github rapidjson的代码,以及rapidjson项目的目录结构,如下图所示: ? 从上图rapidjson项目的目录中可以看出,include文件包含的rapidjson文件就是我们使用rapidjson进行json字符串操作时所需要引入的头文件,example是一些代码示例,可供参考 #include "rapidjson/document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h" #include 使用rapidjson生成json字符串的两种方式 通常rapidjson生成json有两种方式,如下: 方式1: 使用rapidjson::Document和rapidjson::Document::

    7.6K10发布于 2020-03-04
  • 来自专栏开源技术小栈

    Openresty如何使用lualocks包管理器安装使用Lua包

    安装rapidjsonrapidjson 是有名的开源c++ json库,其类java的API使得其易于使用,然而对于rapidjson中的setInt,setString等等setXXX的函数,以及 /src/Schema.cpp.o [ 60%] Building CXX object CMakeFiles/lua-rapidjson.dir/src/rapidjson.cpp.o [ 80%] [100%] Built target lua-rapidjson [100%] Built target lua-rapidjson Install the project... -- Install 使用 local rapidjson = require('rapidjson') rapidjson.encode() rapidjson.decode() rapidjson.load( ) rapidjson.dump()

    84910编辑于 2024-03-20
  • 来自专栏技术随笔心得

    记一次线上崩溃问题的排查过程

    使用rapidjson 之所以采用rapidjson,是因为线上几十个服务,大部分都使用rapidjson,只有线上崩溃的这个服务等少数几个服务,因为历史原因,用的jsoncpp。 先介绍下rapidjson,下述内容来自于rapidjson官网: RapidJSON 是一个 C++ 的 JSON 解析器及生成器。它的灵感来自 RapidXml。 RapidJSON 小而全。 RapidJSON 快。它的性能可与 strlen() 相比。可支持 SSE2/SSE4.2 加速。 RapidJSON 独立。它不依赖于 BOOST 等外部库。它甚至不依赖于 STL。 不过rapidjson为了性能,在使用上面需要极其小心。 ❝笔者之前踩过类似坑,局部字符串赋值给rapidjson对象,结果rapidjson并没有马上使用该局部字符串,而是在最后才会访问局部字符串里面的内容,而此时,局部字符串早已出了作用域,导致rapidjson

    1.7K20编辑于 2022-08-25
  • 来自专栏光城(guangcity)

    C++那些事之轻松解析json

    json库,这里推荐github上开源的rapidjson https://github.com/Tencent/rapidjson 最近在写某buss的时候发现需要json处理,在不同的上下文之间传递数据 将key:value转为json所需要的string转义字符串,随后使用rapidjson在另一端解析即可,下面来阐述一下基本的使用操作。 https://github.com/Tencent/rapidjson 1.类型 在json串中通常有一些类型,例如下面这个json串: { "a":1 } a是string,1是int,怎么在rapidjson (rapidjson::Value::ConstMemberIterator itr=root.MemberBegin(); itr ! = root.MemberEnd(); itr++) { rapidjson::Value key; rapidjson::Value value; rapidjson::Document

    3.1K30发布于 2020-07-02
  • 来自专栏光城(guangcity)

    C++那些事之json解析

    json库,这里推荐github上开源的rapidjson https://github.com/Tencent/rapidjson 最近在写某buss的时候发现需要json处理,在不同的上下文之间传递数据 将key:value转为json所需要的string转义字符串,随后使用rapidjson在另一端解析即可,下面来阐述一下基本的使用操作。 rapidjson中得到呢? (rapidjson::Value::ConstMemberIterator itr=root.MemberBegin(); itr ! = root.MemberEnd(); itr++) { rapidjson::Value key; rapidjson::Value value; rapidjson::Document

    1.7K20编辑于 2022-06-20
  • 来自专栏skyyws的技术专栏

    VS Code编译file not found问题

    最近在使用visual studio code的时候,编写c++代码,往往需要引入第三方的头文件,如下所示: #include "rapidjson/document.h" #include "rapidjson /writer.h" #include "rapidjson/stringbuffer.h" // 省略余下代码 但是如果这些头文件的路径不在默认的搜索路径中(/usr/include或者/usr/local /local/rapidjson/document.h" // 绝对路径 #include "/home/user/cpp/local/rapidjson/document.h" 但是一旦头文件地址有所变动

    1.4K20编辑于 2022-05-20
  • 来自专栏C++技术干货

    JSON基础知识与实践:轻松理解并应用JSON格式

    ::StringBuffer buffer; rapidjson::Writer<rapidjson::StringBuffer> writer(buffer); document.Accept(writer (1)使用 RapidJSON 库:RapidJSON 是一个快速的 C++ JSON 解析/生成库,它提供了一种方便的方式来解析和生成 JSON 数据。 解析 JSON 数据:#include "rapidjson/document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h /document.h" #include "rapidjson/writer.h" #include "rapidjson/stringbuffer.h" // 创建 JSON 对象 rapidjson rapidjson::StringBuffer buffer; rapidjson::Writer<rapidjson::StringBuffer> writer(buffer); document.Accept

    3.8K00编辑于 2025-07-22
  • 来自专栏腾讯技术工程官方号的专栏

    第一篇|腾讯开源项目盘点:WeUI,WePY,Tinker,Mars等

    RapidJSON 是一个 C++ 的 JSON 解析器及生成器,提供 SAX 及 DOM 风格 API。它的灵感来自 RapidXml。 RapidJSON 小而全。 RapidJSON 快。它的性能可与 strlen() 相比。可支持 SSE2/SSE4.2 加速。 RapidJSON 独立。它不依赖于 BOOST 等外部库。它甚至不依赖于 STL。 RapidJSON 对内存友好。在大部分 32/64 位机器上,每个 JSON 值只占 16 字节(除字符串外)。它预设使用一个快速的内存分配器,令分析器可以紧凑地分配内存。 RapidJSON 对 Unicode 友好。它支持 UTF-8、UTF-16、UTF-32 (大端序/小端序),并内部支持这些编码的检测、校验及转码。 例如,RapidJSON 可以在分析一个 UTF-8 文件至 DOM 时,把当中的 JSON 字符串转码至 UTF-16。

    1.5K50发布于 2019-05-16
  • 来自专栏腾讯云代码分析

    【规则分享】C/C++字典空值检查规则

    但是对于 rapidjson 框架,如果访问空值的话,就会直接抛异常,造成程序崩溃。 推荐规则 ▼ 使用TCA-Armory-C1进行自研: 规则:DictKeyCheck 代码示例: rapidjson框架的map对象访问Key之前需要先使用hasMember方法检查Key值是否存在 using namespace rapidjson; void test() { const rapidjson::Value doc; // 未检查 doSomething( doc["foo"]); } 如示例所示,如果没有提前检查Key值,若Key值不存在的话,rapidjson框架就会断言失败或者抛异常,导致进程直接退出。

    44110编辑于 2024-10-21
领券