JSON (JavaScript Object Notation) 是一種輕量級的數據交換格式,它可以被多種編程語言解析。C 語言也可以使用一些開源的庫來生成和解析 JSON。
生成 JSON 的庫有很多,比如 cJSON,Jansson 等,這里以 cJSON 為例:
#include <stdio.h> #include <cJSON.h> int main(void) { cJSON *root = cJSON_CreateObject(); // 創建 JSON 對象 cJSON_AddStringToObject(root, "name", "小明"); // 添加字符串信息 cJSON_AddNumberToObject(root, "age", 18); // 添加數字信息 char *json_str = cJSON_Print(root); // 生成 JSON 字符串 printf("%s\n", json_str); // 輸出 JSON 字符串 cJSON_Delete(root); // 釋放內存 return 0; }
解析 JSON 的庫也很多,比如 cJSON,Jsmn 等。這里以 cJSON 為例:
#include <stdio.h> #include <cJSON.h> int main(void) { char *json_str = "{\"name\":\"小明\",\"age\":18}"; // JSON 字符串 cJSON *root = cJSON_Parse(json_str); // 解析 JSON 字符串 if (root != NULL) { cJSON *name = cJSON_GetObjectItemCaseSensitive(root, "name"); // 獲取字符串信息 cJSON *age = cJSON_GetObjectItemCaseSensitive(root, "age"); // 獲取數字信息 printf("姓名:%s,年齡:%d\n", name->valuestring, age->valueint); } else { printf("解析 JSON 失敗!\n"); } cJSON_Delete(root); // 釋放內存 return 0; }
C 語言的 JSON 生成和解析雖然比較麻煩,但是與網絡通訊密切相關的程序中很常用。