欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c轉json格式

方一強1年前8瀏覽0評論

C語言是一種強大的編程語言,可以用于編寫各種各樣的程序。其中,將C結構體轉換為JSON格式是一種非常常見的操作,可以方便地在網絡傳輸數據的過程中進行信息交流。下面我們就來介紹一下如何將C結構體轉換為JSON格式。

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include <ctype.h>
#include <jansson.h>
//定義一個C結構體,用于存儲關于學生的信息
typedef struct _student
{
char name[20];
int age;
char sex[10];
}Student;
//將C結構體轉換為JSON格式
json_t* student_to_json(Student s)
{
json_t* root = json_object();
json_object_set_new(root, "name", json_string(s.name));
json_object_set_new(root, "age", json_integer(s.age));
json_object_set_new(root, "sex", json_string(s.sex));
return root;
}
//將JSON格式轉換為C結構體
bool json_to_student(json_t* root, Student* s)
{
const char* name = json_string_value(json_object_get(root, "name"));
int age = json_integer_value(json_object_get(root, "age"));
const char* sex = json_string_value(json_object_get(root, "sex"));
if(name && sex && age >0)
{
strcpy(s->name, name);
s->age = age;
strcpy(s->sex, sex);
return true;
}
return false;
}
int main()
{
Student s = {"Tom", 18, "male"};
json_t* root = student_to_json(s);
char* result = json_dumps(root, JSON_PRESERVE_ORDER | JSON_INDENT(4));
printf("student info: %s\n", result);
Student new_s;
json_to_student(root, &new_s);
printf("new student info: name=%s age=%d sex=%s\n", new_s.name, new_s.age, new_s.sex);
json_decref(root);
free(result);
return 0;
}

上述代碼中使用了jansson庫,該庫為C語言提供了方便的JSON解析和生成功能。其中,student_to_json函數將Student結構體轉換為JSON格式,json_to_student函數將JSON格式轉換為Student結構體。在main函數中,我們首先將一個Student結構體轉換為JSON格式,并將生成的JSON字符串輸出到控制臺。隨后,我們將JSON格式轉換為另一個Student結構體,并將新生成的結構體的信息輸出到控制臺。