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

c 實體類生成json

吉茹定2年前8瀏覽0評論

在C語言中,實體類的概念并不是很普遍,但有時我們也會需要將數據轉換為JSON格式,便于傳輸和存儲。這時候,我們可以利用結構體與JSON之間的轉換庫來實現。

現在我們有一個如下所示的結構體:

typedef struct Person {
char* name;
int age;
char* gender;
} Person;

我們希望將這個結構體轉換為JSON格式,我們可以使用以下代碼:

#include "cJSON.h"
char* person_to_json(Person* person) {
cJSON* root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", person->name);
cJSON_AddNumberToObject(root, "age", person->age);
cJSON_AddStringToObject(root, "gender", person->gender);
char* json_string = cJSON_Print(root);
cJSON_Delete(root);
return json_string;
}

在這段代碼中,我們使用了cJSON庫來創建JSON對象,并使用cJSON_AddXXXToObject()函數向其中添加屬性。最后,我們使用cJSON_Print()函數將JSON對象轉換為字符串,并使用cJSON_Delete()函數釋放內存。

轉換后的JSON字符串將會是這樣的:

{
"name": "張三",
"age": 18,
"gender": "男"
}

當然,我們也可以將JSON字符串轉換回結構體:

Person* person_from_json(char* json_string) {
cJSON* root = cJSON_Parse(json_string);
Person* person = malloc(sizeof(Person));
person->name = cJSON_GetObjectItem(root, "name")->valuestring;
person->age = cJSON_GetObjectItem(root, "age")->valueint;
person->gender = cJSON_GetObjectItem(root, "gender")->valuestring;
cJSON_Delete(root);
return person;
}

在這段代碼中,我們使用cJSON_Parse()函數將JSON字符串解析為JSON對象,并使用cJSON_GetObjectItem()函數獲取屬性值,然后將其存入結構體中。同樣,我們在最后使用cJSON_Delete()函數釋放內存。

總的來說,使用cJSON庫可以方便地實現C語言與JSON格式之間的轉換,為我們處理數據提供便利。