C JSON 是一種輕量級的數據交換格式,得到了越來越多的應用。在 C 語言中,C JSON 庫被廣泛使用,成為處理 JSON 數據的標準庫。下面介紹一個 C JSON 范例。
#include#include "cJSON.h" int main() { char *json_string = "{" " \"name\": \"Tom\"," " \"age\": 18," " \"score\": [88, 90, 91]," " \"address\": {" " \"province\": \"Guangdong\"," " \"city\": \"Shenzhen\"," " \"location\": \"Nanshan\"" " }" "}"; cJSON *root = cJSON_Parse(json_string); if (!root) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); exit(EXIT_FAILURE); } cJSON *name = cJSON_GetObjectItem(root, "name"); printf("Name: %s\n", cJSON_GetStringValue(name)); cJSON *age = cJSON_GetObjectItem(root, "age"); printf("Age: %d\n", age->valueint); cJSON *score = cJSON_GetObjectItem(root, "score"); int count = cJSON_GetArraySize(score); printf("Score: "); for (int i = 0; i< count; i++) { cJSON *item = cJSON_GetArrayItem(score, i); printf("%d ", item->valueint); } printf("\n"); cJSON *address = cJSON_GetObjectItem(root, "address"); cJSON *province = cJSON_GetObjectItem(address, "province"); cJSON *city = cJSON_GetObjectItem(address, "city"); cJSON *location = cJSON_GetObjectItem(address, "location"); printf("Address: %s, %s, %s\n", cJSON_GetStringValue(province), cJSON_GetStringValue(city), cJSON_GetStringValue(location)); cJSON_Delete(root); return 0; }
上面的代碼中包含了一個 JSON 字符串,其中包括了 name、age、score 和 address 四個屬性。我們使用 cJSON_Parse 函數將 JSON 字符串解析為 cJSON 對象,然后通過 cJSON_GetObjectItem 函數獲取 cJSON 對象中的屬性值。
在這個 C JSON 范例中,我們演示了如何獲取 JSON 對象中的字符串、整數和數組類型以及嵌套對象。使用 C JSON 庫,可以方便快捷地完成對 JSON 數據的解析和生成,適用于各種 C 語言開發場景。