在C語言中,我們可以使用第三方庫來解析并接收JSON對象數組。
首先,我們需要下載并安裝一個JSON庫,例如jansson。安裝成功后,我們可以在代碼中包含jansson.h頭文件。
#include <jansson.h>
接下來,我們需要定義一個字符型數組,用于接收從網絡中獲取的JSON對象數組。定義如下:
char* buffer;
我們還需要定義一個json_t類型的指針,用于存儲解析后的JSON對象數組:
json_t* root;
接著,我們可以使用curl等網絡庫獲取JSON對象數組,將其存儲到剛才定義的字符型數組中:
// 獲取JSON對象數組 CURL *curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com/objects.json"); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); curl_easy_perform(curl); curl_easy_cleanup(curl); } // 將字符型數組轉換為JSON對象數組 json_error_t error; root = json_loads(buffer, 0, &error); free(buffer); if (!root) { printf("Error: %d %s\n", error.line, error.text); return -1; }
最后,我們可以遍歷JSON對象數組,分別獲取每個對象的屬性值:
size_t index; json_t *value; json_array_foreach(root, index, value) { char *name = json_string_value(json_object_get(value, "name")); int age = json_integer_value(json_object_get(value, "age")); printf("name=%s, age=%d\n", name, age); } // 釋放內存 json_decref(root);
以上就是使用C語言接收JSON對象數組的基本步驟。在實際開發中,我們可以根據具體的需求進行更加復雜的操作。