cJSON 如何添加数组
时间: 2023-11-16 21:29:58 浏览: 123
要向 cJSON 对象中添加数组,可以使用 cJSON_CreateArray() 函数创建一个新的 cJSON 数组对象,并使用 cJSON_AddItemToObject() 函数将其添加到父对象中。例如,以下代码创建一个包含两个元素的 cJSON 数组,并将其添加到名为 "my_array" 的 cJSON 对象中:
```
cJSON *my_array = cJSON_CreateArray();
cJSON_AddItemToObject(parent_object, "my_array", my_array);
cJSON *element1 = cJSON_CreateNumber(10);
cJSON_AddItemToArray(my_array, element1);
cJSON *element2 = cJSON_CreateString("hello");
cJSON_AddItemToArray(my_array, element2);
```
这将创建一个名为 "my_array" 的 cJSON 对象,并将其添加到父对象中。然后,它将创建两个元素,一个整数和一个字符串,并将它们添加到 cJSON 数组中。
相关问题
CJSON 构建数组
CJSON是一个轻量级的JSON解析器和生成器,使用它可以方便地将JSON字符串转化为C语言中的数组、结构体或者指针类型,同时也可以将C语言数据转化为JSON字符串。下面是一个使用CJSON构建数组的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main()
{
cJSON *root = cJSON_CreateArray(); // 创建一个空数组
// 往数组中添加三个元素,分别是字符串、整型和浮点数
cJSON_AddItemToArray(root, cJSON_CreateString("hello"));
cJSON_AddItemToArray(root, cJSON_CreateNumber(123));
cJSON_AddItemToArray(root, cJSON_CreateNumber(3.14));
char *json_str = cJSON_Print(root); // 将数组转换成JSON字符串
printf("%s\n", json_str);
cJSON_Delete(root); // 释放内存
free(json_str);
return 0;
}
```
运行上述代码,输出结果为:
```
["hello",123,3.140000]
```
cjson 遍历数组
要遍历cjson数组,你可以按照以下步骤进行操作:
1. 首先,你需要使用cJSON_GetArraySize()函数获取数组的长度。这个函数接受一个指向cJSON数组的指针,并返回数组的长度。例如,int len = cJSON_GetArraySize(array);可以获取数组的长度。
2. 接下来,你可以使用一个循环来遍历数组。在循环中,你可以使用cJSON_GetArrayItem()函数获取数组中的每个元素。这个函数接受一个指向cJSON数组的指针和元素的索引值,并返回该索引处的元素。例如,v1 = cJSON_GetArrayItem(array, i);可以获取数组中索引为i的元素。
3. 在遍历过程中,你可以根据需要对每个元素进行处理。你可以使用print_json()函数来处理每个元素。这个函数的具体实现是未知的,但它可能是用来打印或处理cJSON元素的函数。
下面是一个示例代码,演示了如何使用cJSON遍历数组:
```c
int len = cJSON_GetArraySize(array);
printf("len = %d\n", len);
for(int i = 0; i < len; i++) {
cJSON *v1 = cJSON_GetArrayItem(array, i);
print_json(v1);
}
```
在这个示例中,我们首先使用cJSON_GetArraySize()函数获取数组的长度,然后使用循环遍历数组。在每次循环中,我们使用cJSON_GetArrayItem()函数获取数组中的元素v1,并调用print_json()函数处理该元素。
请注意,具体的处理方式取决于你的应用需求,你可以根据需要修改和优化代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [json数组遍历-第5讲](https://blog.csdn.net/feng19870412/article/details/128354237)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)