C JSON class是一個用于解析和生成JSON數據的類庫。它可以幫助開發人員快速地將JSON數據轉換為C語言變量,以及將C語言變量轉換為JSON數據。
#include "cJSON.h" #includeint main(void) { const char* json = "{\"name\": \"Tom\", \"age\": 20}"; cJSON* root = cJSON_Parse(json); if (root) { const cJSON* name = cJSON_GetObjectItemCaseSensitive(root, "name"); if (cJSON_IsString(name) && (name->valuestring != NULL)) { printf("Name: %s\n", name->valuestring); } const cJSON* age = cJSON_GetObjectItemCaseSensitive(root, "age"); if (cJSON_IsNumber(age)) { printf("Age: %d\n", age->valueint); } } cJSON_Delete(root); return 0; }
在上面的例子中,我們首先聲明一個JSON字符串,然后使用cJSON_Parse函數將其解析為一個cJSON對象(root)。然后我們使用cJSON_GetObjectItemCaseSensitive函數獲取JSON對象中的"name"和"age"屬性,并檢查它們是否是所期望的類型。最后,我們輸出這些屬性的值,并在結束時刪除cJSON對象。
當需要將C語言變量轉換為JSON數據時,可以使用cJSON_CreateObject、cJSON_AddItemToObject等函數來構造一個cJSON對象,并使用cJSON_Print函數將其轉換為JSON字符串。
#include "cJSON.h" #includeint main(void) { cJSON* root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 20); char* json = cJSON_Print(root); printf("%s\n", json); free(json); cJSON_Delete(root); return 0; }
這個例子中,我們首先創建一個空的cJSON對象(root),然后使用cJSON_AddStringToObject和cJSON_AddNumberToObject函數向其添加"name"和"age"屬性。最后,我們使用cJSON_Print函數將其轉換為一個JSON字符串,并在結束時釋放相關內存。
總體上來說,C JSON class是一個功能強大、易于使用的JSON處理類庫,它可以幫助開發人員更方便地處理JSON數據。
上一篇go接收json