C語言是一種通用性編程語言,可以通過使用庫和插件來實現抓取JSON數據。下面是一個簡單的例子。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <curl/curl.h> #include <jansson.h> size_t writeMemoryCallback(void *data, size_t size, size_t nmemb, void *userp) { size_t realsize = size * nmemb; char *mem = (char *) userp; memcpy(&mem[0], &data[0], realsize); return realsize; } int main() { CURL *curlHandle; CURLcode res; char* url = "http://test.com/json"; char* buffer = malloc(4096); curlHandle = curl_easy_init(); curl_easy_setopt(curlHandle, CURLOPT_URL, url); curl_easy_setopt(curlHandle, CURLOPT_WRITEFUNCTION, writeMemoryCallback); curl_easy_setopt(curlHandle, CURLOPT_WRITEDATA, (void*) buffer); res = curl_easy_perform(curlHandle); json_t *root; json_error_t error; root = json_loads((const char*) buffer, 0, &error); if (!root) { printf("Error loading JSON: %s\n", error.text); return 1; } json_t *name, *age; json_object_foreach(root, key, value) { printf("%s:\n", key); if (json_is_string(value)) { printf("%s\n", json_string_value(value)); } else if (json_is_integer(value)) { printf("%lld\n", json_integer_value(value)); } } curl_easy_cleanup(curlHandle); free(buffer); json_decref(root); return 0; }
此代碼利用C語言的CURL庫從給定的URL中抓取JSON數據,然后使用JSON-C庫加載它并提取所需的值。這段代碼是一個起點,根據需要可以進行更改和擴展。
上一篇c語言 掃描json樹