JSON(JavaScript Object Notation)是一種輕量級的數據格式,常用于數據交換和存儲。C 語言作為一種高效、快速、具有底層系統編程能力的編程語言,自然可以處理 JSON 格式的數據。
在 C 語言中,處理 JSON 格式的數據需要借助第三方庫。目前常用的 JSON 庫有 cJSON、JSON-C 和 jsmn 等。
下面以 cJSON 為例,介紹 C 語言如何處理 JSON 格式的數據。
#include <stdio.h>
#include <cJSON.h>
int main() {
char *json_str = "{ \"name\": \"張三\", \"age\": 18 }";
cJSON *root = cJSON_Parse(json_str);
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON *age = cJSON_GetObjectItem(root, "age");
printf("name: %s, age: %d\n", name->valuestring, age->valueint);
cJSON_Delete(root);
return 0;
}
上述程序借助 cJSON 庫解析了一個 JSON 字符串,并提取出其中的 name 和 age 字段。cJSON_Parse 函數將 JSON 字符串轉換成 cJSON 對象,cJSON_GetObjectItem 函數則用于獲取 cJSON 對象中的指定屬性。
cJSON 對象包括多種類型,如 cJSON_Number、cJSON_Bool、cJSON_String 等,可以用不同的 cJSON_GetXXX 函數獲取不同類型的屬性值。
cJSON 庫還提供了一組將 cJSON 對象轉換為 JSON 字符串的函數,如 cJSON_Print、cJSON_PrintUnformatted 等。具體使用方式可參考 cJSON 庫的文檔。