c語言是一門廣泛應用于嵌入式開發和系統編程的語言,而在實際開發中,快速解析json數據也是不可或缺的一個環節。在c語言中,使用第三方庫來解析json數據是最為常見的選擇,而目前,cJSON是一個常用的第三方json解析庫。
使用cJSON解析json數據的流程如下:
cJSON *root = cJSON_Parse(jsonStr); // 解析json字符串成json結構體 if(root == NULL){ // 解析失敗 } else { // 解析成功 } cJSON_Delete(root); // 釋放占用的內存
在cJSON中,我們可以通過cJSON_Parse函數將json字符串解析成一個json結構體,返回值是一個指向該結構體的指針。如果解析失敗,則返回NULL。
而在解析成功后,我們可以通過cJSON_Print函數將該結構體轉換成對應的json字符串,例如:
cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 18); char *jsonStr = cJSON_Print(root); printf("%s\n", jsonStr); free(jsonStr); // 必須手動釋放內存 cJSON_Delete(root); // 釋放占用的內存
可以看到,我們首先使用cJSON_CreateObject函數創建了一個json結構體,然后通過cJSON_AddStringToObject和cJSON_AddNumberToObject分別向該結構體中添加字符串和數字類型的鍵值對。之后,我們使用cJSON_Print函數將該結構體轉換成json字符串,并使用printf打印出來。
需要注意的是,在使用cJSON_Print函數生成json字符串后,必須手動調用free函數釋放內存。