在c語言中,解析JSON格式的數據可以使用第三方庫。
其中,常用的JSON庫有cJSON和jansson。
//使用cJSON解析JSON格式數據的代碼樣例 #include#include #include "cJSON.h" int main() { char *json_str = "{\"name\":\"Tom\", \"age\":18}"; cJSON *root = cJSON_Parse(json_str); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); printf("name: %s\nage: %d\n", name->valuestring, age->valueint); cJSON_Delete(root); return 0; }
另外,解析JSON格式數據必須通過URL獲取JSON數據。
使用cURL可以方便地發送HTTP請求,并接收到服務器響應。
//使用cURL獲取JSON數據的代碼樣例 #include#include #include "cJSON.h" int main() { CURL *curl; CURLcode res; char *url = "http://api.openweathermap.org/data/2.5/weather?q=London,uk&APPID=your_api_key"; char *data; cJSON *root; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, url); res = curl_easy_perform(curl); if(res == CURLE_OK) { curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &data); printf("Content-Type: %s\n", data); curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &data); printf("Response code: %s\n", data); data = (char *)malloc(strlen(responseText) + 1); memcpy(data, responseText, strlen(responseText) + 1); root = cJSON_Parse(data); cJSON_Delete(root); free(data); } curl_easy_cleanup(curl); } return 0; }
以上就是使用c語言解析JSON格式數據的兩個重要步驟。
選用適合自己的JSON庫以及cURL庫,將一切盡在掌握。