JSON(JavaScript Object Notation)是一種輕量級數(shù)據(jù)交換格式,其基于JavaScript的一個(gè)子集,可用于描述簡單數(shù)據(jù)結(jié)構(gòu),如 HashMap 和 ArrayList。
在 C 語言中生成 JSON 的方法主要依靠 cJSON 庫,該庫是一個(gè)輕量級的庫,能夠解析和生成 JSON 數(shù)據(jù)。
#include <stdio.h> #include "cJSON.h" int main() { // 創(chuàng)建一個(gè)對象 cJSON* object = cJSON_CreateObject(); // 添加字段和值 cJSON_AddStringToObject(object, "name", "Tom"); cJSON_AddNumberToObject(object, "age", 20); cJSON_AddBoolToObject(object, "married", cJSON_false); // 將數(shù)據(jù)寫入 JSON 文件 char* json_data = cJSON_Print(object); FILE* file = fopen("data.json", "w"); fprintf(file, "%s", json_data); fclose(file); // 釋放指針 cJSON_Delete(object); free(json_data); return 0; }
上述代碼展示了基本的生成 JSON 數(shù)據(jù)的示例,其中 cJSON_CreateObject() 創(chuàng)建了一個(gè) JSON 對象,cJSON_AddXXXToObject() 函數(shù)用于向?qū)ο笾刑砑幼侄魏椭担琧JSON_Print() 將對象轉(zhuǎn)換成 JSON 字符串,并將其寫入文件中。
除了生成 JSON 數(shù)據(jù),cJSON 庫還能夠解析 JSON 數(shù)據(jù),通過 cJSON_Parse() 函數(shù)將 JSON 字符串解析成 cJSON 對象,使用 cJSON_Print() 函數(shù)將其轉(zhuǎn)換為 JSON 格式字符串。