C JSON(簡稱 cJSON)是一種用于處理 JSON 數據的 C 語言庫。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,常用于 Web 前端與后端之間的數據傳輸。
cJSON 庫提供了一些簡單易用的 API 來將 JSON 數據解析成 C 語言中的對象,或將 C 語言中的對象轉化為 JSON 數據。以下是一個簡單的 cJSON 使用示例:
#include <cJSON.h> #include <stdio.h> int main() { char* json_str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; cJSON* root = cJSON_Parse(json_str); if (root == NULL) { printf("Error: parse JSON string failed!\n"); return 1; } cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); cJSON* city = cJSON_GetObjectItem(root, "city"); printf("name: %s\n", name->valuestring); printf("age: %d\n", age->valueint); printf("city: %s\n", city->valuestring); cJSON_Delete(root); return 0; }
以上代碼演示了如何將一個 JSON 字符串解析為一個 cJSON 對象,并通過 cJSON_GetObjectItem 函數獲取其中的元素值。
cJSON 庫同時也提供了 API 來創建 JSON 數據。以下是一個 cJSON 庫創建 JSON 數據的示例:
#include <cJSON.h> #include <stdio.h> int main() { cJSON* root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "John"); cJSON_AddNumberToObject(root, "age", 30); cJSON_AddStringToObject(root, "city", "New York"); char* json_str = cJSON_PrintUnformatted(root); printf("JSON string: %s\n", json_str); cJSON_Delete(root); free(json_str); return 0; }
以上代碼演示了如何使用 cJSON 庫創建一個 JSON 對象,并通過 cJSON_PrintUnformatted 函數將其輸出為 JSON 字符串。
總之,cJSON 是一個輕量級、簡單易用的 C 語言庫,可以方便地對 JSON 數據進行解析與生成。