问题标签 [rapidjson]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
141 浏览

cocos2d-x-3.0 - `doc.AddMember("key1",1,document.GetAllocator())` 和 `doc["key1"]=1` 有什么区别?

我想在其中创建一个 json 对象cocos2d-x 3.4并将rapidjson其转换为字符串:

但输出是{"key1":1} not {"key1":1,"key2":2},为什么?

0 投票
1 回答
2127 浏览

c++ - Rapidjson 根本不编码 utf8 序列

我正在尝试使用 rapidjson 来转义 utf8 序列以进行\uXXXX格式化,但它不起作用。

该文件说它会被转义,但实际上它已经全部删除了。

我尝试使用 AutoUTF 模板,但这里也没有内存流的文档

有任何想法吗?我也试过 jsoncpp,但是那个库也不支持 unicode

谢谢@Milo Yip,我忘了提到我正在使用 Visual Studio 2010

0 投票
1 回答
5632 浏览

c++ - 如何使用 C++ 中的 rapidjson 库从 json 格式字符串中获取值

我正在尝试使用 C++ 中的 rapidjson 库从以下 json 格式字符串中迭代值。我得到了这个 json 格式字符串来响应来自 Allegro Graph Server 的查询。

json格式如下:

我试图用 rapidjson 教程示例迭代他们的示例 json 字符串,它没有问题。但是,当我传递上面的数据时,编译器抱怨如下: rapidjson::GenericValue::GetInt() const [with Encoding = rapidjson:: UTF8<>; 分配器 = rapidjson::MemoryPoolAllocator<>]:断言 `flags_ & kIntFlag' 失败

我使用下面的代码来迭代

任何人都可以帮助我如何从 json 字符串中获取值吗?

预期的输出如下所示,类似于 .nt 文件,一行中的每个数组值都跟在点后面。

0 投票
1 回答
3946 浏览

rapidjson - 我可以在 rapidjson 中区分 Integer 和 Double 类型吗

当我询问rapidjson::Value使用GetType()方法的类型时,它只返回以下类型:

如您所见,没有这样的kIntType也不kDoubleType(甚至kUintTypekInt64Type)因此,我无法获得 的实际值rapidjson::Value

例如:

无论如何要区分实际的数字类型吗?

谢谢。

0 投票
1 回答
2711 浏览

rapidjson - rapidjson中的Document和Value有什么区别?

似乎 Document 也可以用作参数

Document 和 Value 都可以有子值,它们之间有什么区别?

0 投票
2 回答
6172 浏览

c++ - Rapidjson 查找成员

我有一个这样的 JSON 字符串:

现在,我想检查是否有名称command并获取值。可能吗?我的代码如下,但它不起作用。

0 投票
2 回答
1293 浏览

c++ - 如何将此类序列化为 XML 或 JSON

我有一个从名为“Campus”的类派生的对象列表,其中包含两个字符串,一个 int 和两个列表:一个用于“学生”,另一个用于“教师”,在关闭程序之前,我想保存校园对象,当然还有列表中包含的“学生”和“教师”对象,我想以 XML 或 JSON 格式甚至其他任何格式序列化这些数据,然后将结果存储在文件中。

有人可以给我最快的方法来使用 XML 或 JSON 或其他解决方案中的库(不像 boost 那么重)进行序列化。说到处理JSON或XML序列化,我不知道该怎么办!编辑:这对 RapidJSON 可行吗?

0 投票
1 回答
13424 浏览

c++ - 有没有办法有效地将 rapidjson 与 std::string 一起使用?

我正在尝试使用 rapidjson。

我想生成字符串并将其添加到rapidjson::Value对象中。

我在使用 qjson 时使用了 std::string,但如果使用 rapidjson,它似乎不合适。我不想生成字符串然后复制它,字符串对象的生命周期在 object ( rapidjson::Value) 生命周期之前结束(因此generated_string.c_str()不是这种情况)。json 中可能有 \0,因此,char*以 null 结尾的字符串也不是解决方案。

那么,我必须编写自己的字符串类型吗?或者使用类似的东西

或者还有其他一些使用字符串的方法?对我来说似乎很难。我们不能将字符串移动到,rapidjson::Value因为里面的结构不同Value,我们不能在里面设置指针Valuec_str()因为字符串会在之前被销毁Value。即使GenericStringRef<char>我必须重写几乎所有使用字符串的工作。

顺便问一下,为什么RAPIDJSON_HAS_STDSTRING默认是0?工作中的一些问题?rapidjson::Value如果我知道字符串生命周期将在值生命周期之前结束,我看到我可以将字符串复制到并复制指针。

UPD:现在我看到 rapidjson 只释放被复制的字符串:

因此,正如在回答中所说,GenericStringRef以我的代码中的方式使用是一个坏主意,因为在这种情况下,我必须自己管理内存。

0 投票
2 回答
776 浏览

c++ - C++ rapidjson 错误:free():下一个大小无效(正常)

我正在阅读有关 JavaScript 的数据,并像这样将 Jsonstring 传递{"data_size":500, "array":[0,0,0,0,..,0,0]}给网络服务器。数组中的数字可以是 0 到 4294967295 之间的任何数字。

在 Mongoose 网络服务器上,我使用 lib rapidjson 来处理 Jsonstring。因此,我创建了一个Document d并使用以下命令将“jsonstring”中的值读取到一个 uint32_t 数组中:

conn->content包含 json char*。

当我发送时:{"data_size":500, "array":[0,0,0,0,..,0,0]} 一切正常。但有时,不是每次,当 a 数字变大时,像这样: {"data_size":500, "array":[123,222,0,0,..,0,0]}

我得到错误:

free():下一个尺寸无效(正常)

0 投票
2 回答
6085 浏览

c++ - 如何在 C++ 中使用 Rapidjson 获取嵌套的 JSON 值

在下面的示例中,如何取nameand balance