问题标签 [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 投票
2 回答
1825 浏览

c++ - LNK2019:带有 rapidjson 的“未解析的外部符号”

我有一个 Visual C++ 项目,我在其中添加了 rapidjson 库,该库经过测试可以正常工作。但是当我rapidjson::Document向嵌套类添加类型时,LNK2019当我尝试编译时会引发错误。该项目是用于创建 DLL 的动态库。

这是我的main.h中的定义:

这是错误:

错误 LNK1120:1 未解决的外部

错误 LNK2019:未解析的外部符号“私有:__thiscall rapidjson::GenericValue,class rapidjson::MemoryPoolAllocator >::GenericValue,class rapidjson::MemoryPoolAllocator >(class rapidjson::GenericValue,class rapidjson::MemoryPoolAllocator > const &)”(? ?0?$GenericValue@U?$UTF8@D@rapidjson@@V?$MemoryPoolAllocator@VCrtAllocator@rapidjson@@@2@@rapidjson@@AAE@ABV01@@Z) 在函数“public: __thiscall rapidjson:: GenericDocument,class rapidjson::MemoryPoolAllocator >::GenericDocument,class rapidjson::MemoryPoolAllocator >(class rapidjson::GenericDocument,class rapidjson::MemoryPoolAllocator > const &)" (??0?$GenericDocument@U?$UTF8@D@ rapidjson@@V?$MemoryPoolAllocator@VCrtAllocator@rapidjson@@@2@@rapidjson@@QAE@ABV01@@Z)

当我评论代码中用HERE IS THE PROBLEM注释的行时,错误消失了。如您所见,在类中使用test变量coreBD不会导致错误。嵌套类中仅存在类型变量rapidjson::Document会导致显示错误;我是否使用它并不重要。

可能是什么问题呢?


编辑

收集到的新信息。

当我在父类中使用嵌套类时会出现问题,但仅在return方法中。换句话说:我可以用rapidjson::Documenttype 作为成员变量来创建所有东西,我可以在coreBDclass 中用 type创建一个方法,我可以在该方法jsonObj中实例化,但是如果类声明了一个成员变量,我就不能返回 type 的值。jsonObjjsonObjjsonObjrapidjson::Document

例如这个新创建的方法:


编辑

继续解决此问题的新问题:执行 rapidjson 的 Document 对象的副本

0 投票
4 回答
15828 浏览

c++ - 执行rapidjson的Document对象的拷贝

我正在上课,我想在一个方法中返回我的课程。我的班级有一个rapidjson::Document对象。

你可以在这里看到之前的问题:LNK2019: "Unresolved external symbol" with rapidjson

正如我发现的那样,rapidjson 会阻止您执行任何类型的Document对象副本,然后包含Document对象的类的默认副本失败。我正在尝试定义自己的复制构造函数,但我需要执行对象的副本。我看到了一种假设用方法复制对象的.Accept()方法,但是在类中返回了很多错误rapidjson::Document

错误 C2248:“无法访问在类 `rapidjson::GenericDocument 中声明的私有成员”

这是我的复制构造函数:

在库的代码(第 52-54 行)中发现“ Copy constructor is not permitted”。

这是我的课:

方法:

那么如何执行Document元素的副本呢?

0 投票
1 回答
1555 浏览

c++ - std::pair 中的 rapidjson::Document

我收到此错误:

当我尝试rapidjson::Document成对返回时,这个错误突然出现:

如果有帮助,rapidjson 是一个只有标头的库。

为什么我不能退回这对?

0 投票
1 回答
264 浏览

json - RapidJson - 修复书面错误

我正在使用我找到的最新版本的 RapidJson,现在在编译时收到了一个奇怪的警告,之前没有显示。我使用这种方法在使用 RapidJson 的 Json 中编写文档:

现在,我收到了这个警告:

...\rapidjson\document.h(553): 警告 C4800: 'unsigned int': 强制值为 bool 'true' 或 'false' (性能警告) ...\firsttimescene.cpp(583): 查看参考使用 [ Encoding=rapidjson::UTF8<>, OutputStream=rapidjson::GenericStringBuffer>, Handler=rapidjson 编译的函数模板 'const rapidjson::GenericValue &rapidjson::GenericValue::Accept>(Handler &) const' 的实例::作家>> ]

有人可以帮助我吗?似乎一切正常,但我有点害怕。

0 投票
1 回答
249 浏览

c++ - 为什么在rapidjson中调用赋值运算符后成员变量会发生变化?

下面显示的源代码是检查 Document 类对象的成员的一部分。我们试图创建一个值类的对象,即“memberObject”,并将对象引用存储到“_value”值引用私有成员变量中。查看输出,我们可以看到对象的类型是 3(对象)。但是,使用 memberObject 分配 _value 引用变量后,输出显示类型更改为 0 (NULL)。我们希望这样的类型更改不应该发生。你能解释一下为什么会这样吗?

成员 [firmwareSettings] - 类型为 [3]
值类型 (1):3
值类型 (2):0

0 投票
2 回答
966 浏览

c++ - 请求一些示例程序以使用 Rapidjson 解析嵌套对象

我一直在尝试解析一些包含嵌套对象的 JSON 数据,如下所示。

{"channels": {"route1": {"post1": "/opt/v1/route1"}, "route2": {"post2": "/opt/v1/route2"}, "route3": {" post3": "/opt/v1/route3"}}}

为了获取名称字符串和值,我的方法是获取对每个 Value 对象的引用并连续解析它们。由于嵌套对象结构,我必须将引用存储到容器中,例如 STL 堆栈,才能回到正确的位置。但是,问题是由于引用的数据类型,没有办法将引用变量存储到 STL 堆栈中。

我还尝试创建一个包含 Value 实例引用变量的结构,并定义一个结构指针变量以存储到 STL 堆栈中。但是,当我尝试将指针变量压入堆栈时。程序终止。

你知道如何解析这种嵌套对象吗?

0 投票
1 回答
7818 浏览

c++ - Rapidjson ,在另一个数组的数组中获取一个值

我需要用 rapidjson 稀疏这种 json :

要获得 id "source_code" 的值非常简单:

d.Parse<0>(json); printf("source_code" = %s\n", document["source_code"].GetString());

但是我无法成功检索数据的值。例如,我希望能够检索“2010-01-12”和“-0.010565362832445”(数据中第一个数组的两个第一个值)。

你有什么主意吗 ?

0 投票
2 回答
1311 浏览

c++ - Rapidjson 文档作为成员变量使该应用程序崩溃

当我使用 rapidjson 文档作为成员变量并执行以下操作时:

当我在 CTOR 中在线调用应用程序if (m_jsonDocument.Parse<0>("{ \"hello\" : \"world\" }").HasParseError())崩溃时。Visual Studio 调试器显示“无法读取内存”。为. 问题是什么?成员变量和局部变量有什么区别?flags_ = defaultFlags[type];document.hGenericValue(Type type)_flags


编辑:我设置f为使用在这里定义的回调setResponseCallback 并被f称为使用 dispatchResponseCallbacks 这里定义的回调。

0 投票
1 回答
990 浏览

c++ - 如果第一个有错误,Rapidjson 会解析另一个 json

假设我有一个 JSON 字符串,它有一个错误,因此无法解析。然后我想解析另一个 JSON 字符串,它将替换原来的字符串。我想使用与rapidjson::Document最终需要解析该文档中的有效 JSON 相同的方法来做到这一点。

所以:

我应该写吗

0 投票
2 回答
11343 浏览

c++ - rapidjson 提取键和值

我正在尝试提取数组中对象的键和值,但找不到合适的 getter:

在第二个循环中,我想分别从迭代器中提取键和值。如何进行提取?