CJSON库获取JSON格式长度的例子
时间: 2023-10-15 13:08:27 浏览: 562
CJSON是一个小巧的、快速的JSON解析/生成库。以下是获取JSON格式长度的CJSON示例:
```
#include <stdio.h>
#include <string.h>
#include "cJSON.h"
int main() {
char *json_str = "{\"name\": \"Jack\", \"age\": 25}";
cJSON *json = cJSON_Parse(json_str);
if (!json) {
printf("Error before: %s\n", cJSON_GetErrorPtr());
} else {
char *json_cstr = cJSON_Print(json);
int len = strlen(json_cstr);
cJSON_Delete(json);
printf("JSON string length: %d\n", len);
}
return 0;
}
```
运行结果:
```
JSON string length: 29
```
相关问题
C语言使用cjson库写入json文件代码
在C语言中,使用cJSON库可以方便地处理JSON数据并将其写入文件。首先,你需要包含必要的头文件,并初始化库。以下是写入JSON文件的一个简单示例:
```c
#include "cJSON.h"
#include <stdio.h>
#include <string.h>
// 示例JSON数据结构
typedef struct {
const char *name;
int age;
} Person;
void write_json_to_file(const cJSON *root, const char *filename) {
FILE *file = fopen(filename, "w");
if (!file) {
printf("Error opening file %s\n", filename);
return;
}
// 将 cJSON 树转换为字符串
char *json_string = cJSON_Print(root);
if (json_string == NULL) {
printf("Error converting JSON to string\n");
fclose(file);
return;
}
// 写入文件
fprintf(file, "%s", json_string);
// 清理内存
free(json_string);
// 关闭文件
fclose(file);
}
int main() {
// 创建一个Person对象
Person person = {"John Doe", 30};
// 使用cJSON创建JSON树
cJSON *root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", person.name);
cJSON_AddNumberToObject(root, "age", person.age);
// 将JSON树写入文件
write_json_to_file(root, "person.json");
// 清理cJSON
cJSON_Delete(root);
return 0;
}
```
在这个例子中,我们首先创建了一个`Person`结构体和一个空的对象作为根。然后添加了一些键值对到这个对象中,最后将整个JSON对象写入名为"person.json"的文件。
注意,记得在项目中包含cJSON库,通常通过`git clone`或者直接下载源码并在编译时链接到你的项目中。
c语言使用cjson库向json文件写入小数
CJSON是一个轻量级的JSON解析器和生成器,适用于C语言环境。如果你想用CJSON库将小数写入到JSON文件中,首先你需要包含cjson.h头文件,并链接相应的库。下面是一个简单的示例:
```c
#include "cJSON.h"
// 定义你要写的JSON数据结构
typedef struct {
char *name; // 对象键名
double value; // 小数值
} MyDecimal;
int main() {
cJSON *root = cJSON_CreateObject();
if (!root) {
printf("Error creating JSON object.\n");
return -1;
}
// 创建一个新的值节点,存储小数
MyDecimal decimal = {"quantity", 3.14};
cJSON *item = cJSON_CreateObject();
cJSON_AddStringToObject(item, "name", decimal.name);
cJSON_AddNumberToObject(item, "value", decimal.value);
// 把值节点添加到根对象
cJSON_AddItemToObject(root, "quantity", item);
// 将JSON写入文件
FILE* file = fopen("data.json", "w");
if (file == NULL) {
printf("Failed to open file for writing.\n");
cJSON_Delete(root); // 清理内存
return -1;
}
cJSON_Print(file, root); // 使用cJSON的打印功能
fclose(file);
cJSON_Delete(root); // 关闭并删除JSON对象
return 0;
}
```
在这个例子中,我们首先创建了一个JSON对象,然后添加了一个名为"quantity"的对象,其值为一个小数。最后我们将这个JSON字符串写入到"data.json"文件中。
阅读全文