C 语言将json转为结构体
时间: 2023-09-04 16:11:45 浏览: 182
可以使用第三方库 cJSON 来实现将 JSON 数据转换为 C 语言中的结构体。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
// 定义结构体
typedef struct {
int age;
char name[20];
} Person;
int main() {
char *json_str = "{\"age\": 25, \"name\": \"John\"}";
// 解析 JSON 字符串
cJSON *root = cJSON_Parse(json_str);
// 从 JSON 中获取数据并赋值给结构体
Person person;
person.age = cJSON_GetObjectItem(root, "age")->valueint;
strcpy(person.name, cJSON_GetObjectItem(root, "name")->valuestring);
// 打印结构体信息
printf("Person: age=%d, name=%s\n", person.age, person.name);
// 释放 cJSON 对象
cJSON_Delete(root);
return 0;
}
```
上述示例中,我们首先定义了一个名为 Person 的结构体,然后使用 cJSON_Parse() 函数将 JSON 字符串转换为 cJSON 对象。接着,我们从 cJSON 对象中获取 age 和 name 两个字段的值,并分别赋值给结构体中的对应字段。最后,我们打印了结构体中的信息,并释放了 cJSON 对象。
阅读全文