在使用C語言中,使用cURL工具進行HTTP請求是比較常見的。而在處理HTTP請求響應中的JSON數據時,我們也需要對JSON數據進行解析。本文主要介紹如何使用C語言解析JSON數據。
在實際應用中,很多API返回的響應數據都是JSON格式的。例如下面所示的JSON數據:
{ "name": "apple", "color": "red", "price": 5.0 }
我們需要將上述JSON數據解析出來,才能方便地獲取name、color和price的值。
下面是使用C語言中的cJSON庫解析JSON數據的代碼:
#include "cJSON.h" #include#include char *data = "{\"name\": \"apple\",\"color\": \"red\",\"price\": 5.0}"; int main() { cJSON *json = cJSON_Parse(data); // 解析JSON數據 if(json != NULL) { cJSON *name = cJSON_GetObjectItem(json, "name"); // 獲取name的值 cJSON *color = cJSON_GetObjectItem(json, "color"); // 獲取color的值 cJSON *price = cJSON_GetObjectItem(json, "price"); // 獲取price的值 printf("name=%s,color=%s,price=%.2f\n", name->valuestring, color->valuestring, price->valuedouble); cJSON_Delete(json); // 釋放內存 } return 0; }
在上述代碼中,先使用cJSON_Parse()函數解析JSON數據,然后使用cJSON_GetObjectItem()函數按照鍵名獲取相應的值。
最后通過打印輸出獲取到的值,其中name和color的值是字符串類型,使用valuestring獲取;price的值是浮點類型,使用valuedouble獲取。
此外,在使用完cJSON_Parse解析JSON數據后,需要使用cJSON_Delete()函數來釋放內存資源。
上一篇python 獲取家目錄
下一篇vue圖片url簽名