核心思想:
将C语言结构体变量转化为json格式的字符串
#include "s2j.h" #include <stdint.h> #include <stdio.h> //定义Student结构体类型 typedef struct { uint8_t id; double weight; uint8_t score[8]; char name[10]; } Student; //将结构体转化为cJSON对象 static cJSON *struct_to_json(void* struct_obj) { Student *struct_student = (Student *)struct_obj; s2j_create_json_obj(json_student); s2j_json_set_basic_element(json_student, struct_student, int, id); s2j_json_set_basic_element(json_student, struct_student, double, weight); s2j_json_set_array_element(json_student, struct_student, int, score, 8); s2j_json_set_basic_element(json_student, struct_student, string, name); return json_student; } int main(void) { //定义Student结构体类型变量 static Student student = { .id = 24, .weight = 71.2, .score = { 1, 2, 3, 4, 5, 6, 7, 8 }, .name = "armink", }; //将结构体Student类型变量student转化为cJSON对象 cJSON *json_student = struct_to_json(&student); //输出不带格式的json字符串 char*json_string = cJSON_PrintUnformatted(json_student); puts(json_string); //输出带格式的json字符串 json_string = cJSON_Print(json_student); printf("\n"); puts(json_string); //销毁cJSON对象json_student s2j_delete_json_obj(json_student); return 0; }
运行结果如图:
交流群:599151072
0.0分
9 人评分
C语言程序设计教程(第三版)课后习题8.1 (Java代码)浏览:828 |
简单的a+b (C语言代码)浏览:783 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:545 |
哥德巴赫曾猜测 (C语言代码)浏览:2579 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:943 |
理财计划 (C语言代码)浏览:494 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:606 |
字符逆序 (C语言代码)浏览:541 |
矩阵转置 (C语言代码)浏览:857 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:1263 |