CJSON是一個輕量級的JSON解析庫,它的主要功能是將JSON文本轉化為C語言的數據結構。CJSON支持從文件和字符串中讀取JSON數據,可以使用簡單的API操作JSON數據,方便開發。
#include "cJSON.h" #include#include int main() { const char *json_string = "{\"name\":\"Tom\",\"age\":18,\"hobby\":[\"basketball\",\"music\"]}"; cJSON *json = cJSON_Parse(json_string); if (!json) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return 1; } cJSON *name = cJSON_GetObjectItem(json, "name"); printf("name: %s\n", name->valuestring); cJSON *age = cJSON_GetObjectItem(json, "age"); printf("age: %d\n", age->valueint); cJSON *hobby = cJSON_GetObjectItem(json, "hobby"); int size = cJSON_GetArraySize(hobby); printf("hobby: "); for (int i=0;i<size;i++) { cJSON *hobby_item = cJSON_GetArrayItem(hobby, i); printf("%s ", hobby_item->valuestring); } printf("\n"); return 0; }
以上是一個簡單的例子,展示了CJSON讀取JSON的基本用法。首先定義了一個JSON字符串,然后使用cJSON_Parse函數將字符串轉為JSON對象。如果轉換失敗,則輸出錯誤信息;如果成功,則可以使用cJSON_GetObjectItem函數獲取JSON對象中的元素。
需要注意的是,獲取元素的返回值是一個cJSON類型的指針,可以使用valuestring、valueint、valuefloat等成員獲取具體的值,也可以使用對應的數組訪問函數獲取數組元素。最后使用cJSON_Delete函數釋放內存。