C JSON 2 Struct是一種將JSON數據轉換為C語言結構體的工具,它可以很容易地將JSON數據解析成結構體對象,方便開發人員進行進一步處理。
#include <stdio.h> #include <cJSON.h> typedef struct person { char name[20]; int age; } Person; int main() { cJSON *json = cJSON_Parse("{\"name\":\"John\",\"age\":30}"); Person p = {0}; if (json) { cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name"); if (name) { strncpy(p.name, name->valuestring, 20); } cJSON *age = cJSON_GetObjectItemCaseSensitive(json, "age"); if (age) { p.age = age->valueint; } cJSON_Delete(json); } printf("name=%s, age=%d", p.name, p.age); return 0; }
上面的代碼演示了如何將JSON串解析成一個Person結構體對象。我們首先使用cJSON_Parse函數將JSON串轉換為cJSON對象,然后使用cJSON_GetObjectItemCaseSensitive函數獲取到JSON對象中的屬性值并賦值給結構體p中的屬性。最后我們使用cJSON_Delete函數釋放cJSON對象。這個例子中,我們解析出了name和age兩個屬性值,并將它們賦值給了Person結構體對應的屬性。最后,我們將Person結構體對象中的屬性打印出來。