在C語言中,讀取JSON數據并不是一件容易的事情,但是還是有一些方法可以實現。
其中一種方法是使用第三方庫,比如libcurl和cJSON。libcurl對HTTP請求進行封裝,而cJSON可以解析JSON數據。我們可以使用libcurl獲取url的JSON數據,然后使用cJSON解析數據。下面是一個簡單的示例:
#include#include #include #include "cJSON.h" int main(void) { CURL *curl; CURLcode res; char *data; int len; cJSON *root; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/json"); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); res = curl_easy_perform(curl); if(res != CURLE_OK) fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); else { curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &len); data = (char *) malloc(len + 1); data[len] = '\0'; root = cJSON_Parse(data); if(!root) { printf("Error before: [%s]\n",cJSON_GetErrorPtr()); } printf("%s\n", cJSON_Print(root)); cJSON_Delete(root); free(data); } curl_easy_cleanup(curl); } return 0; }
上面的示例中,我們使用了libcurl獲取了url的JSON數據,并將數據保存在字符串中。然后,我們使用cJSON解析這個數據,并將其打印到控制臺上。
需要注意的是,在實際應用中,我們需要對從url獲取的JSON數據進行錯誤處理和數據校驗,這里僅僅是一個簡單的示例,不能滿足實際需求。