在C語言中,常使用JSON格式來表示數據,但是JSON格式的數據無法直接在程序中使用,需要將其轉換為C語言中的對象。下面給出一種使用cJSON庫進行JSON轉對象轉換的方法。
#include "cJSON.h" typedef struct Person{ char name[20]; int age; char city[30]; }Person; Person person; char json[100] = "{\"name\":\"Tom\", \"age\":20, \"city\":\"New York\"}"; cJSON *root = cJSON_Parse(json); if(NULL != root) { cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *city = cJSON_GetObjectItem(root, "city"); if(NULL != name && NULL != age && NULL != city) { strncpy(person.name, name->valuestring, sizeof(person.name) - 1); person.age = age->valueint; strncpy(person.city, city->valuestring, sizeof(person.city) - 1); } } cJSON_Delete(root);
以上代碼定義了一個結構體Person,用于存儲JSON中的數據。首先調用cJSON_Parse函數將JSON字符串轉換成一個cJSON對象,然后使用cJSON_GetObjectItem函數獲取JSON中的數據,并將其賦值給Person結構體中的相應成員變量。
最后使用cJSON_Delete函數釋放cJSON對象,避免內存泄漏。