JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,一般用于數據傳輸和存儲。而c語言中有很多工具可以讀寫JSON,其中比較常用的就是基于C語言實現的CJSON庫。
CJSON庫在解析JSON時采用了一種類似于樹的結構,用單獨的結構體表示JSON對象、數組、字符串等不同的類型。在使用CJSON庫之前,需要先下載CJSON庫的安裝包,并在程序中引入相應的頭文件。
#include "cJSON.h"
在讀取JSON數據時,我們需要將JSON格式的字符串轉換為C語言中的結構體類型,示例如下:
char* json_str = "{\"name\":\"tom\",\"age\":18,\"hobby\":[\"basketball\", \"music\"]}"; cJSON* json = cJSON_Parse(json_str); // 將JSON字符串轉為CJSON對象 // 獲取name屬性值 cJSON *name = cJSON_GetObjectItem(json, "name"); printf("name: %s\n", name->valuestring); // 獲取age屬性值 cJSON *age = cJSON_GetObjectItem(json, "age"); printf("age: %d\n", age->valueint); // 獲取hobby屬性值 cJSON *hobby = cJSON_GetObjectItem(json, "hobby"); int hobby_size = cJSON_GetArraySize(hobby); for(int i=0; ivaluestring); } // 釋放CJSON對象 cJSON_Delete(json);
上述代碼中,json_str表示JSON格式的字符串,json表示將JSON字符串轉為的CJSON結構體對象。通過cJSON_GetObjectItem可以獲取對應的屬性值并輸出,其中hobby屬性是一個數組類型,需要通過循環獲取數組中每個元素的值。
總之,使用CJSON庫讀寫JSON數據更加方便快捷,可以極大地提高開發效率。