CJSON 构建数组
时间: 2024-06-03 07:04:50 浏览: 24
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 ]
cJSON 创建数组
cJSON 是一个轻量级的 JSON 解析器和生成器,它支持创建 JSON 对象、数组、字符串、数字等数据类型。要创建一个 JSON 数组,可以使用 cJSON_CreateArray() 函数,示例代码如下:
```
cJSON *root = cJSON_CreateArray();
```
这样就创建了一个空的 JSON 数组,可以通过 cJSON_AddItemToArray() 函数向数组中添加元素,示例代码如下:
```
cJSON_AddItemToArray(root, cJSON_CreateString("apple"));
cJSON_AddItemToArray(root, cJSON_CreateString("banana"));
cJSON_AddItemToArray(root, cJSON_CreateString("orange"));
```
这样就向数组中添加了三个字符串元素。完整的示例代码如下:
```
#include <stdio.h>
#include "cJSON.h"
int main()
{
cJSON *root = cJSON_CreateArray();
cJSON_AddItemToArray(root, cJSON_CreateString("apple"));
cJSON_AddItemToArray(root, cJSON_CreateString("banana"));
cJSON_AddItemToArray(root, cJSON_CreateString("orange"));
char *json_str = cJSON_Print(root);
printf("%s\n", json_str);
cJSON_Delete(root);
free(json_str);
return 0;
}
```
输出结果为:
```
["apple","banana","orange"]
```
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)