C語言是一種廣泛使用的編程語言,它具有高效、穩定、可靠等優點,因此在許多領域得到了廣泛應用。接收返回JSON數據是C語言中常用的一個功能,本文將講解如何使用C語言實現接收返回JSON數據。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <curl/curl.h> #include <jansson.h> // 定義回調函數 size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) { size_t realsize = size * nmemb; // 將數據轉換成json格式 json_error_t error; json_t *root = json_loads(ptr, 0, &error); // 輸出數據 json_t *data = json_object_get(root, "data"); int i; for (i = 0; i < json_array_size(data); ++i) { json_t *object = json_array_get(data, i); const char *name = json_string_value(json_object_get(object, "name")); const char *email = json_string_value(json_object_get(object, "email")); printf("name: %s, email: %s\n", name, email); } return realsize; } int main(int argc, char **argv) { CURL *curl; CURLcode res; curl = curl_easy_init(); if (curl) { // 設置URL curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/api/data"); // 設置回調函數 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); // 執行請求 res = curl_easy_perform(curl); // 檢查是否出錯 if (res != CURLE_OK) { printf("curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } // 清理curl請求 curl_easy_cleanup(curl); } return 0; }
以上是一個接收返回JSON數據的例子,我們需要使用curl和jansson兩個庫來進行數據的請求和解析。在代碼中,我們首先定義了一個回調函數write_callback,在函數中將接收到的字符串數據轉換成json格式,并解析出其中的數據進行輸出。在主函數中,我們使用curl_easy_init()函數初始化一個CURL對象,并使用curl_easy_setopt()函數設置URL、回調函數等參數。最后,我們使用curl_easy_perform()函數執行請求,并檢查返回值是否為CURLE_OK。如果程序中途出現錯誤,可以使用curl_easy_strerror()函數獲取錯誤信息。最后,我們使用curl_easy_cleanup()函數清除CURL對象。