cJSON是一個輕量級的JSON解析器,cJSON提供了一個樹形結構,可以方便地訪問JSON數據中的各個部分,快速解析JSON數據。cJSON支持創建、查找、刪除、修改JSON數據,其使用簡單,方便快捷。
//示例 cJSON *root, *item; root = cJSON_Parse(jsonstr); //解析JSON字符串 if (!root) { //解析失敗 } item = cJSON_GetObjectItem(root, "name"); //獲取root下的"name"節點 if (item) { printf("%s\n", item->valuestring); //獲取節點中的字符串值 }
cJSON的樹形結構是通過cJSON結構體實現的,其中最常用的成員變量包括:
- type:節點類型,包括數組、字符串、對象等
- valuestring:節點的字符串值
- valueint:節點的整數值
- child:指向第一個子節點的指針
- next:指向下一個兄弟節點的指針
cJSON提供了許多方便的函數,可以方便地對JSON數據進行操作,包括:
- cJSON_Parse():解析JSON字符串,返回根節點指針
- cJSON_CreateObject():創建一個對象節點
- cJSON_CreateArray():創建一個數組節點
- cJSON_CreateString():創建一個字符串節點
- cJSON_CreateNumber():創建一個數字節點
- cJSON_AddItemToObject():將一個節點添加到對象節點中
- cJSON_AddItemToArray():將一個節點添加到數組節點中
- cJSON_GetObjectItem():獲取對象節點中指定名稱的子節點
- cJSON_GetArrayItem():獲取數組節點中指定索引的子節點
- cJSON_Delete():刪除節點以及其所有子節點
總之,cJSON是一種非常方便的JSON解析工具,提供了易于使用的API、快速解析JSON數據的操作方式,適用于嵌入式、移動設備等環境,受到越來越多開發者的青睞。