在C語言中,我們有時需要將GET參數轉換成JSON格式,以便應用程序能夠更輕松地處理參數。下面就讓我們來看看如何在C語言中將GET參數轉換成JSON格式。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> #include <curl/curl.h> int main(int argc, char** argv) { CURL* curl; char* json_data; json_t* root; char* url = "http://example.com/get_params.cgi?param1=value1¶m2=value2"; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if(curl) { CURLcode res; curl_easy_setopt(curl, CURLOPT_URL, url); res = curl_easy_perform(curl); if(res != CURLE_OK) { printf("curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } else { curl_easy_getinfo (curl, CURLINFO_CONTENT_TYPE, &content_type); if(strstr(content_type, "application/json") != NULL) { char* buffer_ptr = strndup(buffer, size_returned); root = json_loads(buffer_ptr, 0, NULL); json_data = json_dumps(root, JSON_INDENT(4)); printf("%s\n", json_data); } } curl_easy_cleanup(curl); } curl_global_cleanup(); return 0; }
代碼中我們使用了CURL庫和Jansson庫,CURL庫用于發送GET請求獲取參數,Jansson庫用于將參數轉換成JSON格式。
首先,我們使用CURL庫的curl_easy_init函數初始化一個CURL對象,然后設置請求的URL,使用curl_easy_perform函數向服務器發送GET請求,然后獲取服務器返回的數據。如果服務器返回的數據類型是application/json,就使用Jansson庫的json_loads函數加載JSON數據并轉換成json_t對象,然后使用json_dumps函數將json_t對象轉換成JSON格式字符串,最后輸出JSON格式字符串。
通過以上步驟,我們就可以將GET參數轉換成JSON格式。這種方法適用于HTTP請求、API請求等多種場景。
下一篇html怎么樣寫代碼快