问题标签 [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 得到类型推导
可以使用nlohmann::json
几个不同的表达式来解析对象:
type x = json;
type x; x = json.get<type>();
但是,type x; x = json;
不起作用,因为这需要为type
.
我发现自己需要比表达式 (1) 更频繁地使用表达式 (2)。这可能会很烦人,尤其是在type
复杂的情况下。在少数情况下,我定义
get
但是,如果有一个将引用作为参数的重载,那就太好了,这样就可以实现以下操作。
是否已经有一个功能可以做到这一点,只是名称不同?我在文档中找不到。
编辑:我已经在 GitHub 上提交了一个问题。
编辑 2 : 3.3.0 版中将包含该get
功能的替代方案。T& get_to(T&)
c++ - 如何将派生类从基 ptr 分配给 nlohmann::json
我正在玩某种共享对象框架。它使用 nlohmann::json 来提供消息传递和配置,并根据 json 配置加载消息处理程序和数据源。
由于我使用的值类都派生自基类 Value,因此我希望所有开发人员都可以在 lib 中创建自己的值类。因此,我需要一种机制来将这样的值分配给 json 对象。
但是,如果我只使用指向基类的指针,我怎么能做到这一点呢?
(示例也在https://github.com/Plurax/SOjsonassign上)
还有一个问题:我的代码目前使用的是自己的字符串包装器,它派生自 Baseclass。我曾经从提供“asString”的模板 Base 派生,返回我的字符串类,因为它在基类中不可用。
自己的字符串类的唯一原因是提供一个通用的值接口。是否有另一种方法来获得通用接口?
c++ - 如何反序列化一个数组?
我正在使用nlohmann::json库来序列化/反序列化json
. 下面是我如何序列化一个C++
双精度数组:
哪个产品:
但是现在,我怎样才能反序列化回mLengths
?试过:
但它说expression must be a modifiable lvalue
。如何恢复阵列?
c++ - 为什么 nlohmann/json 在 double 上序列化“null”而不是“0”?
假设我部分初始化了一个本地双数组C++
并使用以下命令对其进行序列化nlohmann/json
:
它将正确序列化如下内容:
但有时,它不是从内存中获取“随机双精度”,而是在 json 中存储值 null,因此会产生如下结果:
当我反序列化它时,它给我抛出了一个异常type must be number, but is null
。
为什么它序列化null
而不是0
?它是否会从记忆中获取“空”的东西?C++中不是0吗?
c++ - c++,使用 nlohmann::json 解析 JSON 数组
在导入到我的 c++ 程序中的 json 文件中,结构如下:
我想遍历"ec"
数组并获取所有数组的值,"a"
并且每个数组的值都"a"
相同s
首先我得到了大小,ec
但是从我理解的文档中我应该对其余部分使用迭代器
但是得到这个例外nlohmann::detail::invalid_iterator at memory location
,我认为这j["ec"].begin()
是不正确的。
我该怎么做,谢谢。
c++ - c++,JSON,获取数组中的对象成员
我nlohmann::json
用于在程序中解析 json。
给定一个json,有一个包含多个对象的数组,根据我想要获取同一对象的其他成员的对象成员之一。
就像在下面的 json
例如,如果值为a
is 2
,我想获取同一索引/对象的 b,c,... 的值。
目前我正在使用一个 for 循环,并在索引处j["arr"][i]["a"].get<int> == 2
为其他成员使用。由于数组可能有数百个成员,这是无稽之谈。
在这种情况下最好的方法是什么?
linux - nlohmann json 有一个名为 name 的字符串成员,我如何检查它是 null 还是有效字符串
我知道我有这个:
它用于 C++。协议说这个成员是强制性的,但很多人没有第三名。
如果是,我有例外
,因为我可以说
如何轻松检查它是否有效?
我只发现了一种非常复杂的形式。
c++ - 为什么 json 文件会从 c++ 中删除旧输入?
我需要制作一个存储用户名和密码的程序。我想将它们存储在 json 文件中。我已经制作了一个可以做到这一点的程序,但是它会删除旧的输入并将它们重写为新的。
例如我们输入用户名:admin,密码:admin。它创建一个 json 文件并存储它们:
}
但是当我再次运行程序并且这次输入用户名:用户,密码:用户时,它将管理员替换为用户。所以基本上它只存储一个输入。但我需要它来存储所有这些。所以我以后可以访问它们。
这不好。你能帮我解决这个问题或提出其他建议吗?
c++ - 如何在不更改 C++ 中的值的情况下更改 json 对象名称?
我正在将 json 用于现代 C++。我有一个 json 文件,其中包含一些数据,例如:
我找到了一种修改“Adrese”、“Name”、“Shortname”值的方法。如您所见,我将“名称”和关键元素名称设置为相同的东西。
但我需要更改关键元素和值“名称”。
所以最后当我以某种方式在代码中修改它时,它看起来像:
我试过了:
然后我尝试了类似的东西:
但这也没有用。
我想要 j["London"] = "Something_new" 之类的东西,并让它保留原来为 "London" 的所有值。
c++ - 使用 nlohmann json 将整数列表解包到 std::vector
我正在使用https://github.com/nlohmann/json
这很棒。
但是..有什么办法可以解压:
变成一个std:vector<int>
?
我找不到任何提及,并且std::vector<int> v = j["my_list"];
失败了j["my_list"].get<std::vector<int>>()