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

c json字符串轉換類實體

錢淋西1年前8瀏覽0評論

C語言開發中,處理JSON數據格式時,通常需要進行JSON字符串和相應的數據結構之間的轉換。為了簡化開發者的工作,許多開源庫提供了JSON字符串轉換類實體的功能。在本文中,我們將介紹基于C語言的JSON字符串轉換類實體的使用方法和注意事項。

//JSON字符串轉換類實體示例代碼:
#include#include#include#include "cJSON.h"
typedef struct Person {
char name[20];
int age;
char *address;
} Person;
char *person_to_json(Person *p) {
cJSON *root = cJSON_CreateObject();  //創建一個JSON對象
cJSON_AddStringToObject(root, "name", p->name);
cJSON_AddNumberToObject(root, "age", p->age);
cJSON_AddStringToObject(root, "address", p->address);
char *json_str = cJSON_Print(root);
cJSON_Delete(root);
return json_str;
}
Person *json_to_person(const char *json_str) {
cJSON *root = cJSON_Parse(json_str);
if (!root)
return NULL;
Person *p = (Person *)malloc(sizeof(Person));
strncpy(p->name, cJSON_GetObjectItem(root, "name")->valuestring, sizeof(p->name));
p->age = cJSON_GetObjectItem(root, "age")->valueint;
p->address = strdup(cJSON_GetObjectItem(root, "address")->valuestring);
cJSON_Delete(root);
return p;
}
int main() {
Person p = {"John", 30, "Beijing, China"};
char *json_str = person_to_json(&p);
printf("Person: %s\n", json_str);
Person *p2 = json_to_person(json_str);
printf("Person: name=%s, age=%d, address=%s\n", p2->name, p2->age, p2->address);
free(json_str);
free(p2->address);
free(p2);
return 0;
}

在上面的示例代碼中,我們定義了一個Person結構體,包含姓名、年齡和地址三個字段。我們定義了兩個函數,person_to_json函數將Person結構體轉換成JSON字符串,json_to_person函數將JSON字符串轉換成Person結構體。在main函數中,我們首先使用person_to_json函數將Person結構體轉換成JSON字符串,然后將該字符串傳給json_to_person函數,獲取轉換后的Person結構體,最后打印該結構體的三個字段。當然,在使用完該結構體后,我們還需要釋放相關的內存。

需要注意的是,在使用cJSON庫時,我們需要在代碼中包含"cJSON.h"頭文件,并將cJSON.c文件編譯成靜態庫或動態庫,然后在鏈接時將該庫鏈接到目標文件中。