C语言中如何将CJson字符串拼接改为字符串数组拼接
时间: 2023-07-03 17:25:33 浏览: 172
c语言版本-字符串转数组
如果你要将 JSON 数据转换为字符串数组的形式拼接,可以使用 sprintf() 函数。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cJSON.h"
int main() {
cJSON *root = cJSON_CreateObject(); // 创建 JSON 对象
cJSON_AddStringToObject(root, "name", "John");
cJSON_AddNumberToObject(root, "age", 30);
cJSON_AddBoolToObject(root, "is_student", true);
char json_str[256];
memset(json_str, 0, sizeof(json_str));
sprintf(json_str, "{\"name\":\"%s\",\"age\":%d,\"is_student\":%s}",
cJSON_GetObjectItem(root, "name")->valuestring,
cJSON_GetObjectItem(root, "age")->valueint,
cJSON_IsTrue(cJSON_GetObjectItem(root, "is_student")) ? "true" : "false");
printf("%s\n", json_str);
cJSON_Delete(root);
return 0;
}
```
在以上示例代码中,我们首先使用 cJSON_CreateObject() 函数创建了一个空的 JSON 对象。然后使用 cJSON_AddStringToObject()、cJSON_AddNumberToObject() 和 cJSON_AddBoolToObject() 函数向 JSON 对象中添加了一些键值对。接着,我们定义了一个字符串数组 json_str,并使用 memset() 函数将其初始化为全 0。然后使用 sprintf() 函数将 JSON 对象中的数据格式化为字符串,并将结果保存到 json_str 数组中。最后通过 printf() 函数输出字符串数组 json_str。最后别忘了使用 cJSON_Delete() 函数释放 JSON 对象占用的内存。
需要注意的是,使用字符串数组拼接的方式需要手动拼接每个键值对,比较麻烦,而且容易出错。因此,推荐使用 cJSON_Print() 函数将 JSON 对象打印为字符串的方式来获取 JSON 数据的字符串形式。
阅读全文