cJSON json字符串转struct
时间: 2023-08-31 17:10:40 浏览: 169
cJSON库(json格式字符串进行转化)
使用cJSON库来进行json字符串与struct的转换十分方便。以下是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
typedef struct {
int id;
char name[20];
float score;
} Student;
int main() {
char *json_str = "{\"id\":123,\"name\":\"Tom\",\"score\":98.5}";
cJSON *root = cJSON_Parse(json_str);
if (root == NULL) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
Student stu;
stu.id = cJSON_GetObjectItem(root, "id")->valueint;
strncpy(stu.name, cJSON_GetObjectItem(root, "name")->valuestring, 20);
stu.score = (float)cJSON_GetObjectItem(root, "score")->valuedouble;
cJSON_Delete(root);
printf("id: %d\n", stu.id);
printf("name: %s\n", stu.name);
printf("score: %f\n", stu.score);
return 0;
}
```
首先,使用cJSON_Parse函数将json字符串解析为cJSON对象。接着,利用cJSON_GetObjectItem函数获取对象中的相应元素,然后按照struct的成员类型进行转换即可。最后,使用cJSON_Delete函数释放内存。
阅读全文