Cjson 数组与字符串互转
时间: 2023-12-23 11:06:06 浏览: 149
Cjson 是一个用于处理 JSON 数据的库,它提供了一些函数来进行 JSON 数据的解析和生成。在 Cjson 中,可以通过函数 cJSON_Parse() 将一个 JSON 字符串解析为一个 cJSON 对象,而 cJSON_Print() 函数可以将一个 cJSON 对象转换为一个 JSON 字符串。
以下是一个示例代码,展示了如何在 Cjson 中进行数组和字符串的互转:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main() {
// 创建一个 JSON 数组
cJSON *array = cJSON_CreateArray();
// 向数组中添加字符串元素
cJSON_AddItemToArray(array, cJSON_CreateString("element1"));
cJSON_AddItemToArray(array, cJSON_CreateString("element2"));
cJSON_AddItemToArray(array, cJSON_CreateString("element3"));
// 将数组转换为 JSON 字符串
char *jsonStr = cJSON_Print(array);
printf("JSON String: %s\n", jsonStr);
// 解析 JSON 字符串为 cJSON 数组
cJSON *parsedArray = cJSON_Parse(jsonStr);
// 遍历数组并打印每个元素
int arraySize = cJSON_GetArraySize(parsedArray);
for (int i = 0; i < arraySize; i++) {
cJSON *element = cJSON_GetArrayItem(parsedArray, i);
printf("Element %d: %s\n", i, element->valuestring);
}
// 释放内存
free(jsonStr);
cJSON_Delete(array);
cJSON_Delete(parsedArray);
return 0;
}
```
以上代码中,我们首先创建了一个 cJSON 数组,并向数组中添加了三个字符串元素。然后,我们使用 cJSON_Print() 函数将该数组转换为 JSON 字符串,并打印出来。接着,我们使用 cJSON_Parse() 函数将该 JSON 字符串解析为一个 cJSON 数组。最后,我们遍历该数组并打印出每个元素的值。
请注意,在使用 cJSON 库之前,你需要先下载并编译该库。你可以从 cJSON 的官方网站(https://github.com/DaveGamble/cJSON)下载该库的源代码,并根据其提供的文档进行编译和安装。
阅读全文