问题标签 [nlohmann-json]

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 投票
0 回答
216 浏览

c++ - 将 nlohmann fifo_map 与基类和派生类一起使用

我目前正在尝试使用有序键生成 JSON,因此使用了一种解决方法。但是,如果我尝试在我的基类和派生类中使用它,我会收到一个我不太理解的错误。它似乎无法调用 to_Json 方法(因为如果我尝试将 DerivedClass-instance(test 和 test2)映射到 my_json.

我已经尝试过没有有序键的示例(只需使用 json = nlohmann::json;),它工作得很好。输出中的键按字母顺序排序,如下所示:

我试图通过使用 nlohmann fifo_map 实现的是保持插入顺序,因此最终输出应如下所示:

执行以下代码会输出两个错误:

图片

请看下面的代码:

在 BaseClass.h 中:

在 DerivedClass.h 中:

在 main.cpp 中:

0 投票
1 回答
284 浏览

c++ - 从 Visual Studio 中间窗口调用方法 nlohmann::json::dump

我正在尝试将对象从类型转储nlohmann::json为来自 Visual Studio 调试器的可读字符串值。因此,为了从nlohmann::json实例调用转储方法,我使用了 Visual Studio 中间窗口。

too few arguments in function call但是,尽管我完全按照我应该的方式调用它,但似乎这种方法运行得不好并返回错误。此外,如果我尝试将其输出设置为新的 std::string 类型,调试器将无法识别它。

知道如何正确地做到这一点吗?

0 投票
1 回答
490 浏览

c++ - 读取 Json 来反对

我目前正在尝试将 json 文件读入一个对象。我使用的 nlohmann-json 版本是 3.7.3。我遵循了该文档中的示例代码,如下所示

我的实现是有一个返回 json 对象的简单函数,所以很简单:

我收到以下错误no operator ">>" matches these operands operand types are: json >> std::ifstream

所以我做了一些调查,在 3.7.3 版本中不再使用这种方式。我也研究json.parse过使用,但效果不佳。

对 nlohmann-jsonversion 3.7.3 执行此操作的最新方法是什么?我在将 json 写入文件时也遇到了类似的问题

这是我写的一个最小的可重现示例,它给了我同样的错误;

错误列表

0 投票
1 回答
276 浏览

c++ - nlohmann json 对索引向量使用 .at() 方法

我使用 nlohmann json 库已经有一段时间了,但我最近发现自己遇到了一个问题。我有一个对象的索引向量:

我想做这样的事情:

我怎样才能做到这一点?

我试过这个:

但这不起作用,因为它没有访问嵌套元素,它只是将对象设置为嵌套值。

0 投票
1 回答
1430 浏览

c++ - 使用 nlohmann json 包从 json 转换时出错

我正在尝试转换表单的 json

我的对象是

正在使用模板,因为内容的结构不固定。当我尝试使用 from_json 就像

我收到错误

[json.exception.out_of_range.403] 未找到密钥“内容”

虽然 json 中有内容键。为什么会这样?

上面的代码是一个最小可重现的例子

0 投票
1 回答
355 浏览

c++ - Nlohmann 的 json 库,json 数组到结构体的向量,结构体内部有指针

我看到了这篇关于将 json 数组转换为结构向量的帖子。我有一个名为Foo

当我尝试这样做时:

它给了我这个错误:

那么如何从 json 中获取指向值的指针呢?

0 投票
1 回答
4681 浏览

c++ - nlohmann json,在嵌套结构之间转换

我正在使用带有嵌入式项目的nlohmann json(现代 C++ 的 JSON) 。操作系统是猫鼬操作系统。Mongoose 有一个很好的配置系统,其中配置数据在 mos.yml 文件中进行处理和布局。该文件在构建时被转换为结构和访问器函数。因此,我可以将配置数据作为一个结构获取,其中包含其他嵌套结构。我需要将其转换为 JSON。

我的理解是 nlohmann::json 能够将 JSON 转换为我自己的类型,我所要做的就是提供to_json()from_json()方法,如下所述:

nlohmann json docs(类型转换示例)

此示例代码非常简单:

但是给出的例子非常简单。我的类型更复杂,我无法弄清楚更复杂结构的语法,比如这个(为了简洁而摘录):

如果有人可以告诉我它是如何完成的或指出正确的方向,将不胜感激,谢谢。

0 投票
2 回答
995 浏览

c++ - 有没有更好的方法来处理异常?try-catch 块真的很难看

我读了这篇文章,发现处理异常很重要,我使用nlohmann::json(来自github)并且几乎在我的大多数成员函数中都使用了它,如果输入有问题nlohmann::json::parsenlohmann::json::dump它就有机会抛出异常。

所以我需要处理那些抛出异常的机会,如下所示:

但我想知道哪一行代码抛出异常,所以如果我写这样的东西:

它给我留下了数千个 try-catch 块。为什么处理异常更好?

0 投票
1 回答
280 浏览

drake - 在德雷克中使用 nlohmann/json 的 C++ 版本冲突

我最近发现 nlohmann/json 在 C++ 11 上运行。否则,由于使用更高 C++ 版本的不推荐行,它会给出一些语法错误。

通过使用关键术语,我能够使用 nlohmann 运行普通的 c++ 文件

但是,如果我将 drake 合并到我的示例中,它不会运行(很可能是由于 C++ 版本低)

为了测试 nlohmann/json,我在他们的github 页面上获取了位于 json/single_include/nlohmann/json.hpp 下的 json.hpp 文件。我确保#include json 文件。

有没有一种简单的方法可以将 nlohmann/json 或任何其他类型的 json 阅读器合并到 drake 中?

0 投票
1 回答
349 浏览

c++ - 使用 nlohmann JSON C++ 库验证文件中是否存在 JSON 对象

我有一个项目,我在其中导入 JSON 文件来设置全局变量。文件中的 JSON 对象名称有多种可能性,所以我想知道如何检查对象是否存在。我尝试这样做的方式(使用如下所示的 if 语句)导致错误

所以它根本不起作用。有没有办法做到这一点?谢谢!