在使用 C 語(yǔ)言解析 JSON 數(shù)據(jù)時(shí),經(jīng)常會(huì)涉及到二維數(shù)組的操作。下面,我們將介紹如何使用 C 語(yǔ)言解析 JSON 數(shù)據(jù)中的二維數(shù)組。
// 假設(shè)我們有一段 JSON 數(shù)據(jù),其中包含一個(gè)二維數(shù)組 char* json_string = "{\"matrix\":[[1,2,3],[4,5,6],[7,8,9]]}"; // 導(dǎo)入 json-c 庫(kù) #include <json-c/json.h> // 解析 JSON 數(shù)據(jù)并獲取二維數(shù)組 json_object* jobj = json_tokener_parse(json_string); json_object* jmatrix = json_object_object_get(jobj, "matrix"); int rows = json_object_array_length(jmatrix); int cols = 3; int matrix[rows][cols]; // 解析二維數(shù)組并存儲(chǔ)到 matrix 中 int i, j; for (i = 0; i < rows; i++) { json_object* jrow = json_object_array_get_idx(jmatrix, i); for (j = 0; j < cols; j++) { json_object* jcol = json_object_array_get_idx(jrow, j); matrix[i][j] = json_object_get_int(jcol); } } // 輸出 matrix for (i = 0; i < rows; i++) { for (j = 0; j < cols; j++) { printf("%d ", matrix[i][j]); } printf("\n"); }
通過以上代碼,我們就可以解析 JSON 數(shù)據(jù)中的二維數(shù)組,并將其存儲(chǔ)到 C 語(yǔ)言的二維數(shù)組中。
需要注意的是,上述代碼中無(wú)論是在解析 JSON 數(shù)據(jù)時(shí)還是在存儲(chǔ)數(shù)據(jù)時(shí),都需要知道二維數(shù)組的行數(shù)和列數(shù)。因此,在解析 JSON 數(shù)據(jù)時(shí),我們需要先獲取二維數(shù)組的行數(shù),然后才能知道每一行的列數(shù)。