JSON(JavaScript Object Notation)是一種輕量級的數據格式,常用于網絡數據傳輸和存儲。C 語言中有許多可以解析和生成 JSON 的第三方庫,本文將示范一個簡單的例子,介紹如何使用 cJSON 庫生成和解析 JSON 數據。
首先需要安裝 cJSON 庫。可以前往 cJSON 的 GitHub 頁面https://github.com/DaveGamble/cJSON下載最新版本的 cJSON,解壓后將 cJSON.c 和 cJSON.h 兩個文件放入項目中。下面是生成 JSON 數據的示例代碼:
#include <stdio.h> #include <cJSON.h> int main() { cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Alice"); cJSON_AddNumberToObject(root, "age", 18); char *json_data = cJSON_Print(root); printf("%s\n", json_data); cJSON_Delete(root); return 0; }
首先創建一個 cJSON 的根對象 root,然后使用 cJSON_AddStringToObject 和 cJSON_AddNumberToObject 兩個函數分別添加名為 name 和 age 的字符串和數字類型數據。之后使用 cJSON_Print 函數將 root 對象轉化為字符串形式,并輸出到控制臺。最后使用 cJSON_Delete 函數釋放內存。
下面是解析 JSON 數據的示例代碼:
#include <stdio.h> #include <cJSON.h> int main() { char *json_data = "{\"name\":\"Alice\",\"age\":18}"; cJSON *root = cJSON_Parse(json_data); char *name = cJSON_GetObjectItem(root, "name")->valuestring; int age = cJSON_GetObjectItem(root, "age")->valueint; printf("%s-%d\n", name, age); cJSON_Delete(root); return 0; }
首先定義一個字符串 json_data,其內容是我們要解析的 JSON 數據。使用 cJSON_Parse 函數將 json_data 解析為 cJSON 的根對象 root。然后使用 cJSON_GetObjectItem 函數分別獲取名為 name 和 age 的值,并輸出到控制臺。最后使用 cJSON_Delete 函數釋放內存。
以上就是 cJSON 的一個簡單的使用示例。cJSON 庫具有簡單方便的 API 和很好的移植性,可以使我們在 C 語言中輕松操作 JSON 數據,為我們的開發提供很多幫助。