JSON(JavaScript Object Notation,JavaScript對象表示法)是一種輕量級數據交換格式,其本質上是一種基于文本的數據交換協議,能夠輕松地在不同語言之間進行數據交換。
C語言有許多JSON解析庫,比如CJSON、Jansson等。其中常用的CJSON非常簡單易用,只需要一個cJSON.h頭文件即可開始使用。
// 示例,解析JSON字符串 #include <stdio.h> #include <cJSON.h> int main() { char* json_string = "{ \"message\": \"hello json\" }"; // JSON字符串 cJSON *json = cJSON_Parse(json_string); // 解析JSON字符串 if (json == NULL) { const char *error_ptr = cJSON_GetErrorPtr(); // 獲取解析錯誤指針 if (error_ptr != NULL) { printf("Error before: %s\n", error_ptr); // 打印錯誤信息 } return 1; } cJSON *message = cJSON_GetObjectItemCaseSensitive(json, "message"); // 獲取JSON鍵值 printf("%s\n", message->valuestring); // 打印鍵值 cJSON_Delete(json); // 釋放內存 return 0; }
在程序中使用JSON字符串,也可以通過CJSON庫將C語言數據結構轉換成JSON字符串。下面是一個示例:
// 示例,生成JSON字符串 #include <stdio.h> #include <cJSON.h> int main() { // 創建JSON對象 cJSON *json = cJSON_CreateObject(); cJSON_AddStringToObject(json, "name", "json"); cJSON_AddNumberToObject(json, "age", 5); // 將JSON對象轉換成字符串 char* json_string = cJSON_Print(json); printf("%s\n", json_string); cJSON_Delete(json); // 釋放內存 return 0; }
總結來說,使用C語言處理JSON數據非常簡單,只需要引入相關的JSON解析庫,便可以完成JSON字符串的解析和生成,為數據交換帶來極大便利。