C++ JSON库 nlohmann::basic_json::array 的用法示例详解
作者:泡沫o0
nlohmann::json是一个C++的JSON库,它提供了一种容易和直观的方法来处理JSON数据,nlohmann::json::array()是用来创建一个JSON数组的方法,这篇文章主要介绍了C++ JSON库nlohmann::basic_json::array的用法,需要的朋友可以参考下
简介
nlohmann::json 是一个 C++ 的 JSON 库,它提供了一种容易和直观的方法来处理 JSON 数据。nlohmann::json::array()
是用来创建一个 JSON 数组的方法。
下面是一些基本的例子:
创建一个空的 JSON 数组:
nlohmann::json j = nlohmann::json::array();
创建一个包含一些元素的 JSON 数组:
nlohmann::json j = nlohmann::json::array({ "element1", "element2", 3.14, false });
你也可以使用 push_back 或者 emplace_back 方法来向 JSON 数组添加元素:
nlohmann::json j = nlohmann::json::array(); j.push_back("element1"); j.emplace_back("element2");
遍历 JSON 数组的元素:
nlohmann::json j = nlohmann::json::array({ "element1", "element2", 3.14, false }); for (auto& element : j) { std::cout << element << '\n'; }
以上都是 JSON 数组的基础用法,实际使用时可以根据需要进行扩展和修改。
nlohmann::basic_json::array 官网介绍
static basic_json array(initializer_list_t init = {});
从给定的初始化列表创建一个 JSON 数组值。也就是说,给定一个值列表 a, b, c
,创建 JSON 值 [a, b, c]
。如果初始化列表为空,则创建空数组 []
。
参数
init
(输入):用于创建数组的 JSON 值的初始化列表(可选)
返回值
JSON 数组值
异常安全性
强保证:如果抛出异常,则 JSON 值不会有任何改变。
复杂度
线性于 init
的大小。
注意
此函数只需要用来表示两个无法通过初始化列表构造函数(basic_json(initializer_list_t, bool, value_t)
)实现的边缘情况。这些情况是:
- 创建一个所有元素都是第一个元素为字符串的对的数组 - 在这种情况下,初始化列表构造函数会创建一个对象,将第一个元素作为键
- 创建一个空数组 - 将空的初始化列表传递给初始化列表构造函数会生成一个空对象
示例
以下代码展示了 array
函数的示例。
#include <iostream> #include <nlohmann/json.hpp> using json = nlohmann::json; int main() { // 创建 JSON 数组 json j_no_init_list = json::array(); json j_empty_init_list = json::array({}); json j_nonempty_init_list = json::array({1, 2, 3, 4}); json j_list_of_pairs = json::array({ {"one", 1}, {"two", 2} }); // 序列化 JSON 数组 std::cout << j_no_init_list << '\n'; std::cout << j_empty_init_list << '\n'; std::cout << j_nonempty_init_list << '\n'; std::cout << j_list_of_pairs << '\n'; }
输出:
[]
[]
[1,2,3,4]
[["one",1],["two",2]]
另请参阅
basic_json(initializer_list_t)
- 从初始化列表创建一个 JSON 值object
- 从初始化列表创建一个 JSON 对象值
版本历史
在版本 1.0.0 中添加。
到此这篇关于C++ JSON库 nlohmann::basic_json::array 的用法的文章就介绍到这了,更多相关C++ nlohmann::basic_json::array内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!