C是一種高級編程語言,被廣泛用于系統編程和嵌入式系統開發。C語言可以通過調用Web API來獲取和處理Web數據。當使用C語言來調用Web API時,數據通常以JSON格式進行傳輸。
為了在C中解析JSON數據,需要使用第三方庫,例如Jansson庫。Jansson庫是一個用C編寫的開源JSON庫,可以用于解析和生成JSON數據。
#include "jansson.h" #include#include int main(int argc, char *argv[]) { CURL *curl; CURLcode res; char *url = "http://api.example.com/data.json"; struct curl_slist *headers = NULL; char *json_str; json_t *json; json_error_t error; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, url); headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); res = curl_easy_perform(curl); if (res == CURLE_OK) { curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &content_type); curl_easy_getinfo(curl, CURLINFO_PRIVATE, &data); json = json_loads(data, 0, &error); if (!json) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } json_str = json_dumps(json, JSON_INDENT(4)); printf("%s\n", json_str); free(json_str); json_decref(json); } else { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } curl_easy_cleanup(curl); } curl_slist_free_all(headers); }
如上所示,這個簡單的代碼段使用CURL庫從Web服務器獲取JSON數據,并使用Jansson庫將其解析為JSON對象。這些數據可以隨后在C中進行處理和分析。