c语言json结构体_C语言结构体转json格式的字符串(一)

核心思想:

将C语言结构体变量转化为json格式的字符串

#include "s2j.h"

#include 

#include 

//定义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;

}

运行结果如图:

c语言json结构体_C语言结构体转json格式的字符串(一)_第1张图片

交流群:599151072

你可能感兴趣的:(c语言json结构体)