在 C 語言中,要讀取一個 JSON 文件中的數(shù)組,需要使用第三方庫??梢允褂?cJSON 庫,它是一個輕量級的 C 語言庫,用于解析和生成 JSON 數(shù)據(jù)格式。
使用 cJSON 庫需要先將其添加到項目中??梢詫㈩^文件和源文件直接拷貝到項目中,并在文件中包含頭文件。
#include "cJSON.h"
接下來,需要使用 cJSON_Parse 函數(shù)將 JSON 字符串解析為 cJSON 對象。這個函數(shù)有一個參數(shù),即要解析的文本。
char* json_str = "{\"name\": \"Tom\", \"scores\": [98, 85, 76]}"; cJSON* json = cJSON_Parse(json_str);
解析后,可以使用 cJSON_GetObjectItem 函數(shù)獲取數(shù)組。這個函數(shù)有兩個參數(shù),一個是 cJSON 對象,另一個是要獲取的數(shù)組的名稱。
cJSON* scores_array = cJSON_GetObjectItem(json, "scores");
獲取到數(shù)組后,可以使用 cJSON_GetArraySize 函數(shù)獲取數(shù)組長度。這個函數(shù)有一個參數(shù),即 cJSON 對象。
int scores_count = cJSON_GetArraySize(scores_array);
獲取數(shù)組長度后,可以使用循環(huán)遍歷數(shù)組,使用 cJSON_GetArrayItem 函數(shù)獲取數(shù)組中的元素。
for (int i = 0; i< scores_count; i++) { cJSON* score_item = cJSON_GetArrayItem(scores_array, i); int score = score_item->valueint; printf("%d ", score); }
上面的代碼將會輸出數(shù)組中的每個元素。