使用Cjson解析的程序例子
时间: 2023-09-06 15:04:01 浏览: 152
### 回答1:
答:这里有一个使用Cjson解析的示例程序: #include <stdio.h> #include <cjson/cJSON.h> int main() { // 读取JSON文件 char* json = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }"; // 创建一个cJSON对象 cJSON *root = cJSON_Parse(json); // 获取JSON中的属性 cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *city = cJSON_GetObjectItem(root, "city"); // 打印属性值 printf("name=%s", name->valuestring); printf("age=%d", age->valueint); printf("city=%s", city->valuestring); // 释放cJSON对象 cJSON_Delete(root); return 0; }
### 回答2:
Cjson是一种用于解析和生成JSON数据的C语言库。下面是一个使用Cjson解析的程序例子:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cJSON.h"
int main() {
// JSON字符串
char jsonStr[100] = "{\"name\":\"Alice\",\"age\":25}";
// 解析JSON字符串
cJSON *root = cJSON_Parse(jsonStr);
// 从JSON对象中获取name和age字段的值
cJSON *nameObj = cJSON_GetObjectItem(root, "name");
cJSON *ageObj = cJSON_GetObjectItem(root, "age");
// 打印name和age字段的值
printf("Name: %s\n", nameObj->valuestring);
printf("Age: %d\n", ageObj->valueint);
// 释放内存
cJSON_Delete(root);
return 0;
}
在这个例子中,我们首先定义了一个JSON字符串,并使用cJSON_Parse()函数解析该字符串,将其转换为一个cJSON对象。
然后,我们使用cJSON_GetObjectItem()函数从该JSON对象中获取"name"和"age"字段的值,并分别存储在nameObj和ageObj这两个cJSON对象中。
最后,我们使用valuestring和valueint字段访问nameObj和ageObj的值,并打印输出到控制台。
注意,使用完cJSON对象后,我们需要使用cJSON_Delete()函数释放内存。
以上就是一个简单的使用Cjson解析的程序例子。当然,实际应用中,我们还可以通过cJSON_GetArrayItem()函数解析JSON数组,以及使用cJSON_Print()函数生成JSON字符串等。
### 回答3:
JSON是一种经常使用的数据格式,Cjson是一个用于解析JSON数据的C语言库。下面是一个使用Cjson解析的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <cJSON.h>
int main() {
// JSON字符串
const char* json_str = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
// 解析JSON字符串
cJSON* root = cJSON_Parse(json_str);
if (root == NULL) {
printf("解析JSON字符串失败\n");
return 1;
}
// 获取并打印name字段的值
cJSON* name = cJSON_GetObjectItem(root, "name");
printf("name: %s\n", name->valuestring);
// 获取并打印age字段的值
cJSON* age = cJSON_GetObjectItem(root, "age");
printf("age: %d\n", age->valueint);
// 获取并打印city字段的值
cJSON* city = cJSON_GetObjectItem(root, "city");
printf("city: %s\n", city->valuestring);
// 释放JSON对象内存
cJSON_Delete(root);
return 0;
}
```
这个程序首先定义了一个JSON字符串,然后使用`cJSON_Parse()`函数将JSON字符串解析成一个`cJSON`对象。接着,使用`cJSON_GetObjectItem()`函数来获取JSON对象中的字段值,并打印出来。最后,使用`cJSON_Delete()`函数释放`cJSON`对象的内存。
以上就是一个使用Cjson解析JSON数据的简单示例。这个示例展示了如何解析JSON字符串并获取其中的字段值,可以根据实际需求进行扩展和修改。
阅读全文