C++ JSON库 nlohmann::basic_json::array 的用法示例详解

 更新时间:2023年06月19日 14:51:25   作者:泡沫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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • c++ 尽量不要使用#define 而是用const、enum、inline替换。

    c++ 尽量不要使用#define 而是用const、enum、inline替换。

    为什么这么说呢?或许很多程序员已经习惯在文件开始使用大量的#define语句
    2013-01-01
  • C语言中不定参数 ... 的语法以及函数封装

    C语言中不定参数 ... 的语法以及函数封装

    不定参数是指函数可以接收不确定个数的参数,下面这篇文章主要给大家介绍了关于C语言中不定参数 ... 的语法以及函数封装的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • C++超详细介绍模板

    C++超详细介绍模板

    人们需要编写多个形式和功能都相似的函数,因此有了函数模板来减少重复劳动;人们也需要编写多个形式和功能都相似的类,于是 C++ 引人了类模板的概念,编译器从类模板可以自动生成多个类,避免了程序员的重复劳动
    2022-07-07
  • C语言哈希表概念超详细讲解

    C语言哈希表概念超详细讲解

    哈希是一种很高效的存储数据的结构,它是利用的一种映射关系,它也是STL中unordered_map和unordered_set 的底层结构。本文,主要讲解哈希的原理,哈希的实现,里面关键点在于如何解决哈希冲突
    2023-02-02
  • C++ STL标准库std::vector的使用详解

    C++ STL标准库std::vector的使用详解

    vector 是表示可以改变大小的数组的序列容器,本文主要介绍了C++ STL标准库std::vector的使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 使用C语言的fork()函数在Linux中创建进程的实例讲解

    使用C语言的fork()函数在Linux中创建进程的实例讲解

    这篇文章主要介绍了使用C语言的fork()函数在Linux中创建进程的实例讲解,fork在父进程下创建出的子进程可以与父进程一起来多进程运行同一个程序,需要的朋友可以参考下
    2016-06-06
  • C++实现一个简单的SOAP客户端

    C++实现一个简单的SOAP客户端

    这篇文章主要介绍了C++实现一个简单的SOAP客户端,在C++中,一般使用gSOAP来实现客户端、服务端,下面一起进入文章了解具体内容,需要的朋友可以参考一下
    2021-11-11
  • 浅谈C语言之字符串处理函数

    浅谈C语言之字符串处理函数

    下面小编就为大家带来一篇浅谈C语言之字符串处理函数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • C++二级指针和指针的引用

    C++二级指针和指针的引用

    这篇文章主要介绍了C++二级指针和指针的引用,下文举例实现形参指针改变实参指针所指向的对象,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-03-03
  • C语言实现C++继承和多态的代码分享

    C语言实现C++继承和多态的代码分享

    本文主要给大家简单讲诉了C和C++的区别以及如何使用C语言模拟实现C++继承和多态,并附上示例代码,是篇相当不错的文章,推荐给喜欢C语言的小伙伴们
    2017-07-07

最新评论