在使用C語言抓取JSON報文時,我們通常需要使用第三方庫來進行相關的處理。常見的JSON處理庫有cJSON、Jansson等。
以cJSON為例,下面是一個簡單的示例代碼:
#include "cJSON.h" #includeint main() { // 假設從網絡獲取到以下JSON報文 char* json_str = "{ \"name\":\"張三\", \"age\":20, \"is_student\":true }"; // 解析JSON報文 cJSON* json_root = cJSON_Parse(json_str); if (json_root == NULL) { printf("JSON解析失敗!\n"); return -1; } // 獲取字段內容 cJSON* json_name = cJSON_GetObjectItem(json_root, "name"); if (!cJSON_IsString(json_name)) { printf("字段name數據類型不正確!\n"); return -1; } cJSON* json_age = cJSON_GetObjectItem(json_root, "age"); if (!cJSON_IsNumber(json_age)) { printf("字段age數據類型不正確!\n"); return -1; } cJSON* json_is_student = cJSON_GetObjectItem(json_root, "is_student"); if (!cJSON_IsBool(json_is_student)) { printf("字段is_student數據類型不正確!\n"); return -1; } // 輸出字段內容 printf("姓名:%s\n", cJSON_GetStringValue(json_name)); printf("年齡:%d\n", json_age->valueint); printf("是否學生:%s\n", (json_is_student->valueint == 1) ? "是" : "否"); // 釋放資源 cJSON_Delete(json_root); return 0; }
在上述示例代碼中,我們首先從網絡獲取到一個JSON報文,然后使用cJSON庫的cJSON_Parse函數進行解析,并通過cJSON_GetObjectItem函數獲取字段內容。最后,我們將獲取到的字段內容通過printf函數輸出。
需要注意的是,cJSON庫在使用前需要先進行編譯和鏈接配置。具體使用方式可參考cJSON官網提供的文檔。
上一篇python 爬蟲餓了么
下一篇input 傳值 vue