色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 將實體類轉換成json

呂致盈1年前10瀏覽0評論

在使用C語言開發的過程中,我們有時候需要將一些實體類轉換成JSON格式,以便于傳輸和處理。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,而在C語言中,我們可以使用一些第三方庫來實現這個功能。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
typedef struct {
int id;
char name[20];
double score;
} Student;
int main() {
Student s = {1, "Tom", 89.5};
json_t *root = json_object();
json_object_set_new(root, "id", json_integer(s.id));
json_object_set_new(root, "name", json_string(s.name));
json_object_set_new(root, "score", json_real(s.score));
char *output = json_dumps(root, JSON_INDENT(4));
printf("%s", output);
json_decref(root);
free(output);
return 0;
}

在上面的代碼中,我們定義了一個結構體Student,其中包含了三個屬性:id、name和score。我們使用jansson這個第三方庫創建了一個JSON對象,并對其進行了三個屬性的設置,最后使用json_dumps函數將JSON對象轉換成了字符串并輸出。

在實際的工程開發中,我們可以將此代碼進行封裝,以便于在不同的地方調用,例如:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
typedef struct {
int id;
char name[20];
double score;
} Student;
char* toJson(Student s) {
json_t *root = json_object();
json_object_set_new(root, "id", json_integer(s.id));
json_object_set_new(root, "name", json_string(s.name));
json_object_set_new(root, "score", json_real(s.score));
char *output = json_dumps(root, JSON_INDENT(4));
json_decref(root);
return output;
}
int main() {
Student s = {1, "Tom", 89.5};
char *output = toJson(s);
printf("%s", output);
free(output);
return 0;
}

在此封裝后,我們可以方便地調用toJson函數,將任何一個Student對象轉換成JSON字符串。