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

c 實體與json的互轉

張吉惟2年前9瀏覽0評論
在C語言中,實體與JSON之間的互轉是一項常見操作。實體通常表示為C結構體,而JSON是一種輕量級的數據交換格式。
下面是一個示例C結構體:

struct Person { char name[50]; int age; char address[100]; };

假設現在需要將這個結構體轉換為JSON格式的字符串。可以使用一個開源的C庫,例如cJSON庫,來實現。

cJSON *root = cJSON_CreateObject(); // 創建一個JSON對象 cJSON_AddStringToObject(root, "name", person.name); // 添加屬性 cJSON_AddNumberToObject(root, "age", person.age); cJSON_AddStringToObject(root, "address", person.address); char *jsonString = cJSON_Print(root); // 將JSON對象轉為字符串 cJSON_Delete(root); // 釋放內存

這里使用了cJSON_CreateObject函數創建了一個JSON對象,然后使用cJSON_Add*ToObject系列函數向對象中添加屬性和值。最后使用cJSON_Print函數將對象轉換為字符串,并釋放內存。 如果需要從JSON字符串中解析出一個C結構體,可以使用cJSON_Parse函數。

char *jsonString = "{\"name\":\"Jack\",\"age\":30,\"address\":\"123 Main St\"}"; cJSON *root = cJSON_Parse(jsonString); Person person; strcpy(person.name, cJSON_GetObjectItem(root, "name")->valuestring); person.age = cJSON_GetObjectItem(root, "age")->valueint; strcpy(person.address, cJSON_GetObjectItem(root, "address")->valuestring); cJSON_Delete(root);

這里將一個JSON字符串傳給cJSON_Parse函數,返回一個JSON對象。然后使用cJSON_GetObjectItem函數獲取屬性值,并將其填充至C結構體中。 以上便是實體與JSON的互轉的基本操作。在實際應用中,還可以根據具體情況使用其他C庫或工具來實現。