c++ json 数组
时间: 2023-11-16 15:04:29 浏览: 119
JSON数组是一种存储多个数据项的方式,在JSON中用方括号 [] 来表示。数组可以包含不同类型的数据,如数字、字符串、布尔值等,甚至可以包含其他的JSON对象或数组。
例如,下面是一个包含三个元素的JSON数组的示例:
```
[
"apple",
"banana",
"orange"
]
```
在这个例子中,JSON数组包含了三个字符串元素:apple、banana和orange。
另一个例子是包含多个对象的JSON数组:
```
[
{
"name": "John",
"age": 30
},
{
"name": "Jane",
"age": 25
},
{
"name": "Mike",
"age": 35
}
]
```
在这个例子中,JSON数组包含了三个对象,每个对象包含了名字和年龄属性。
相关问题
json 数组遍历 c++
在C++中,JSON数组遍历通常涉及到使用JSON库来解析和操作JSON数据。C++没有内置的JSON解析器,但有许多第三方库可供选择,比如nlohmann/json、RapidJSON等。这里以nlohmann/json为例,因为这是一个常用的轻量级库。
首先,你需要包含必要的头文件并定义一个JSON数组:
```cpp
#include <nlohmann/json.hpp>
using json = nlohmann::json;
```
假设你有一个JSON数组如下:
```json
{
"array": [1, "two", true, {"key": "value"}]
}
```
遍历这个数组的步骤如下:
```cpp
// 解析JSON字符串
std::string json_string = R"({"array": [1, "two", true, {"key": "value"}]})";
json j = json::parse(json_string);
// 获取数组
const auto& array = j["array"];
// 遍历数组
for (const auto& element : array) {
if (element.is_number()) {
std::cout << "Number: " << element.get<int>() << std::endl;
} else if (element.is_string()) {
std::cout << "String: " << element.get<std::string>() << std::endl;
} else if (element.is_boolean()) {
std::cout << "Boolean: " << element.get<bool>() << std::endl;
} else if (element.is_object()) {
const auto& object = element.get<std::object>();
for (const auto& kv : object) {
std::cout << "Object key-value: " << kv.first << ": " << kv.second << std::endl;
}
}
}
```
c++ nlohmann 赋值json数组为空
要赋值一个空的 JSON 数组,可以使用空的 JSON 数组来初始化一个 JSON 对象,然后将这个 JSON 对象赋值给需要的变量。例如:
```c++
#include <nlohmann/json.hpp>
using json = nlohmann::json;
int main()
{
// 初始化一个空的 JSON 数组
json empty_array = json::array();
// 将空的 JSON 数组赋值给变量
json my_array = empty_array;
// 输出结果
std::cout << my_array << std::endl;
return 0;
}
```
输出结果为:
```
[]
```
注意,这里使用了 `json::array()` 来初始化一个空的 JSON 数组。如果直接使用 `{}` 或 `[]` 来初始化,会被解释为一个空的 JSON 对象或数组元素,而不是一个空的 JSON 数组。
阅读全文