问题标签 [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.
c++ - 如何使用 nlohmann-json 搜索 json 对象数组并返回匹配对象
想象有一个帐户对象数组
我想编写一个方法,该方法接受一个帐号并返回匹配的帐户对象。我最初想出了这个
但我不确定这是一个好方法,特别是因为如果没有匹配的帐户,它就行不通。任何想法如何解决这个问题?
我对 c++ 很陌生,我正在使用 nlohmann-json 进行 json 解析。任何帮助,将不胜感激。谢谢!
c++ - 比较枚举类值时的奇怪行为
我正在使用可爱的 nlohmann::json 处理一些 JSON 解析代码,为了帮助生成有用的错误消息,我为自己创建了一个函数来打印 JSON 对象的类型。此函数接受 a json::value_t
,它是一个枚举类,其定义如下json.hpp
:
这是我的功能。我通过它 ajson::value_t
并且我希望收到一个描述它的字符串。
但是,在 Visual Studio 中进行调试时,"an integer"
当我非常肯定地通过它时,当这个函数返回字符串时,我真的被吓到了json::value_t::number_float
。
由于担心最坏的情况,并且想要快速修复,我编写了以下替代方法,除了枚举在使用之前总是被强制转换为它的基础类型之外,它是相同的:
这行得通。正如我所料,通过了json::value_t::number_float
结果。"a floating point number"
仍然好奇,并怀疑微软的怪癖之一或未定义行为潜伏在我相当大的代码库的其他地方,我在 g++ 上运行了以下测试:
我真的很害怕看到与 Visual Studio 相同的行为:
为什么会这样?看起来number_float
和number_unsigned
都被认为等于number_integer
。但是根据这个答案,比较正常并没有什么特别之处enum
。使用 有什么不同enum class
吗?这是标准行为吗?
编辑:这是一个更简单的混淆来源:似乎如果我<
用来比较最后三个枚举类值中的任何一对,它总是返回false
. 这可能是我上面问题的核心。为什么会有这种奇怪的行为?以下输出来自此实时示例
c++ - 如何使用nlohmann检查c ++中嵌套json中是否存在密钥
我有以下 json 数据:
我需要检查subject_id
上述 json 数据中是否存在。为此,我在下面做了:
我该如何解决这个问题。谢谢
c++ - 使用 nlohmann json 在文件中保存 json 数据时获取空值
我正在使用nlohmann json创建并保存一些 json 值。但是当我查看文件时,我会null
在 json 之间得到值。下面是它的样子:
正如您在上面的 json 数据中看到的,我得到了一些意想不到的空值。以下是我如何保存它:
如何null
从代码中删除这些额外内容。
c++ - 如何使用 nlhoman json 在 C++ 中将相同的关键 json 数据合并为一个
我有以下 JSON 数据:
在上面的 JSON 数据中,我们可以看到我们有 4 个对象 ID,但只有 2 个跟踪器 ID。我需要合并具有相同的数据TrackerId
并添加它们的时间。所以上面的数据会变成:
我正在为 C++ 使用Nlohmann JSON 库。我们怎样才能做到这一点?
c++ - 如何在 JSON 中创建文件层次结构表示
我第一次使用https://github.com/nlohmann/json,我必须像这样创建文件层次结构:
现在我在嵌套节点中添加信息时遇到问题。我试图通过搜索新键“级别”来解决这个问题,并试图找到这个键等于我需要的级别,但它仍然不起作用。我的代码:
c++ - 使用 nlohmann 在 cpp 中输出 Json 数组
我使用以下代码使用 nlohmann 库创建了 json 对象:
输出是
但我希望输出是
在一个数组中,以便能够拥有多个消息。
所以我想问在数组中添加值的最佳方法是什么,因为当我打印它时,数组的输出为空。
我是 cpp 的新手,所以我想为这个问题道歉,如果被认为太容易了,但任何帮助都将不胜感激。
c++ - 如何迭代 std::variant 的类型?
我有一些变体using V = std::variant<A, B, C>
和原型的功能V parse(const json&)
。该函数应该尝试解析所有类型(例如A
, B
, then C
)直到第一次成功(并且应该隐式地解析,因为及时会有很多类型)。
如何实现这种东西?
我们可能想办法使用std::variant_size
。
这是接近我需要的东西。
我的解决方案是明确列出所有类型的解析器。
然而,它肯定会被简化,因为 lambdas 仅在类型上有所不同,而我真正需要的是迭代std::variant
.
c++ - 使用“现代 C++ 的 JSON”库检测整数不适合指定类型?
此代码打印-1
:
我想检测该值是否超出预期范围。有可能以某种方式完成吗?
c++ - C++ 的 JSON 解析器
我正在尝试解析 Json 文件并将数据存储到二维数组或向量中。Json 文件如下所示:
这就是我的代码的样子,但我不断收到“json.exception.parse_error.101”错误