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

c++ - C++:使用 nlohmann json 从文件中读取 json 对象

我正在使用 nlohmann 的 json 库来处理 c++ 中的 json 对象。最终,我想从文件中读取一个 json 对象,例如像这样的一个简单对象。

我不太确定如何解决这个问题。在https://github.com/nlohmann提供了几种从字符串文字反序列化的方法,但是将其扩展为读取文件似乎并不简单。这个事情谁有经验?

0 投票
1 回答
2487 浏览

c++ - C++ nlohmann/json 如何使用运行时提供的 json_pointers 来读取 json 值

我正在使用现代 C++ 的 json 解析器 Json ( https://github.com/nlohmann/json )。我知道我可以使用 JSON_Pointer 获取 JSON 值的值:

auto v1 = j["/a/b/c"_json_pointer];

但是,如果 JSON 指针是在运行时定义的(传递到我的函数中),我将如何获取值?

您不能将“json_pointer”附加到 std::string 分配或 s1 变量。是否有将 std::string 转换为 json_pointer 的函数?调用者对 json 一无所知,无法访问“json.hpp”标头。我也试过

但“json_pointer”类未定义。除了这个问题,这是一个很棒的库,可以做我需要的一切。TIA。

0 投票
4 回答
11297 浏览

c++ - 如何使用 nlohmann::json 将 json 对象转换为地图?

例如,使用 nlohmann::json,我可以做到

但我做不到

有什么方法可以使用 nlohmann::json 将 json 对象转换为地图?

0 投票
1 回答
5974 浏览

c++ - C++ - 将 JSON 或数组从它转换为向量

我正在使用https://github.com/nlohmann/json将 JSON 文件加载到我的程序中。
此刻,我正在加载它:

我可以通过以下方式访问它:

但我想从中创建向量 - 我该怎么做?
这是此文件的示例:

0 投票
1 回答
1330 浏览

c++ - 将 valijson 与 Nlohmann's JSON for Modern C++ 一起使用来验证具有子模式的模式

可以使valijson 与Nlohmann 的json 解析器一起使用,以从引用其他文件中的子模式的文件中读取模式吗?

我在最后一行收到 std::runtime_error 。

0 投票
0 回答
211 浏览

c++ - nlohmann::json 如何实现漂亮的反序列化语法?

nlohmann::json 如何实现漂亮的反序列化语法?

从语法上讲,它似乎是错误的。但它确实有效。这里有什么技巧吗?

0 投票
1 回答
7385 浏览

c++ - 使用 CMake 添加仅标头依赖项

我有一个简单的项目,它需要三个仅标头库才能编译:websocketppspdlognlohmann/json

项目结构如下所示:

根 CMakeLists.txt 如下:

这个想法基本上是每个子目录都是一个库(例如core),并且app“聚合”了所有子目录。每个库(例如core)都是这样构建的(core/CMakeLists.txt):

请注意我如何链接依赖项(它们是仅标头库!)。这就是我获取它们的方式(vendor/install.cmake):

到目前为止一切顺利:您可以看到依赖项是作为 git 子模块获取的,幸运的是,这使得管理它们变得更容易。但是,当我使用 编译我的项目时mkdir build && cd build && cmake ../src,出现以下错误:

CMake 错误:安装(EXPORT FooCoreConfig ...)包括目标 foo-core,它需要不在导出集中的目标 websocketpp。

CMake 错误:安装(EXPORT FooCoreConfig ...)包括目标 foo-core,它需要不在导出集中的目标 spdlog。

包括标头,例如#include <spdlog/spdlog.h>#include <nlohmann/json.hpp>产生错误,指出标头未找到。

说实话,我对 CMake 不太满意,过去两天我一直在调试它。这可能是非常简单的事情,但我不知道如何实现它。实际上,只需将 -I 作为编译器标志传递即可使用我想要的库,但 CMake 抽象似乎让我感到困惑。如果有人能解释为什么这不起作用,我会很高兴,并且希望将这些库包含到我的项目中的正确方法是什么。提前致谢!

0 投票
1 回答
72 浏览

c++ - 根据输入变量创建 JSON 结构

我有以下 JSON 文件:

我将使用此信息创建一个新的 JSON 文件,其尺寸由outer_sizeinner_size和. 我要生成的结构有以下形式length_onelength_two

此结构包含两个“外部”变量ab因为outer_size=2.

a包含两个“内部”变量a_onea_two,而b包含一个“内部”变量b_one。这是因为inner_size分别是 2 和 1。

问题基于给定outer_sizeinner_sizelength_onelength_two,生成具有这些维度的 JSON 结构的最佳方法是什么?可以/应该用来完成吗?

请注意以下事项

  1. 的值outer_size必须始终等于length_XX-specifications 的数量(在上面的示例 2 中)。如果是 3,我们也必须指定length_three
  2. a_one等的具体值a_ two可以是本例中的任何值。现在我主要关心的只是构建基本结构。
  3. 我正在使用 Nlohmann 的 JSON 库来读取初始 JSON 文件。
0 投票
2 回答
1762 浏览

c++ - 用于现代 C++ 线程的 JSON 安全吗?

我正在使用一个名为“现代 C++ 的 JSON”( https://github.com/nlohmann/json ) 的库,它非常漂亮,让我可以通过与 Javascript 服务器端应用程序共享的 C++ 程序使用 JSON 配置文件。该库本质上创建了另一种数据类型,该数据类型的访问和操作方式与 Javascript JSON 对象非常接近。

我的问题是,我是否需要关注 JSON 变量访问和操作的线程安全性,或者我是否可以相信该库是线程安全的。我查看了文档,我没有看到它说它是线程安全的,但我也没有看到任何地方说它不是线程安全的。

有其他人在多线程环境中使用这个库吗?您需要自己保护它还是图书馆保护自己。也许我真的很幸运,存储库作者 nlohmann 会直接回答!

任何帮助是极大的赞赏!

0 投票
1 回答
8430 浏览

c++ - 为什么我不能使用 [] 运算符访问 nlohmann 的 C++ JSON 库中的数组?

我将这个JSON 库用于 C++,以便从 Twitter 的 API 获取信息,该 API 将 JSON 数组返回给我的程序(我存储在 responseData 中)。但是当我尝试访问返回数组中的“名称”时,它不允许我访问。

这是进程终止后我得到的错误:

这是我正在处理的代码部分: