在c語言中,我們常常需要讀取和解析json格式的數(shù)據(jù)。而循環(huán)讀取json內(nèi)容則是其中一個常見的需求。下面我們就來介紹一下如何通過c語言的循環(huán)機(jī)制來讀取json內(nèi)容。
// 首先需要加載相應(yīng)的json庫 #include <stdio.h> #include <jansson.h> int main() { // 聲明一個json對象和解析器 json_t *root; json_error_t error; // 讀取json內(nèi)容 root = json_load_file("test.json", 0, &error); if(!root) { printf("加載json數(shù)據(jù)出錯: %s\n", error.text); return 1; } // 循環(huán)讀取json內(nèi)容 json_t *data; // 存放數(shù)據(jù)的json對象 size_t index; // 存放當(dāng)前循環(huán)的索引 json_array_foreach(root, index, data) { // 處理數(shù)據(jù) const char *name = json_string_value(json_object_get(data, "name")); int age = json_integer_value(json_object_get(data, "age")); printf("Name: %s, Age: %d\n", name, age); } // 釋放json對象 json_decref(root); return 0; }
上述代碼中,我們先使用json_load_file()函數(shù)加載了一個json文件,如果加載失敗,則會輸出相應(yīng)的錯誤信息。在獲取數(shù)據(jù)之后,我們使用json_array_foreach()函數(shù)循環(huán)遍歷了json數(shù)組中的每個數(shù)據(jù),并使用json_string_value()和json_integer_value()函數(shù)獲取了相應(yīng)的數(shù)據(jù)。最后,我們使用json_decref()函數(shù)釋放了json對象。