C JSON 是一種方便且易于使用的數(shù)據(jù)交換格式。它可以輕松地表示標(biāo)量值、數(shù)組和多維數(shù)組。其中,多維數(shù)組是一個(gè)由數(shù)組組成的數(shù)組。在 C JSON 中,多維數(shù)組通常表示為嵌套的 JSON 數(shù)組。
{
"multi_array": [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
}
上述代碼中,multi_array 是一個(gè)由三個(gè)數(shù)組組成的數(shù)組。每個(gè)數(shù)組有三個(gè)元素。在 C JSON 中,訪問(wèn)多維數(shù)組的元素通常使用數(shù)組索引運(yùn)算符([])。
#include <stdio.h>
#include <cjson/cJSON.h>
int main() {
const char* json_str = "{\"multi_array\":[[1,2,3],[4,5,6],[7,8,9]]}";
cJSON* root = cJSON_Parse(json_str);
cJSON* multi_array = cJSON_GetObjectItem(root, "multi_array");
int i, j;
for (i = 0; i < cJSON_GetArraySize(multi_array); i++) {
cJSON* array = cJSON_GetArrayItem(multi_array, i);
for (j = 0; j < cJSON_GetArraySize(array); j++) {
cJSON* element = cJSON_GetArrayItem(array, j);
printf("%d ", element->valueint);
}
printf("\n");
}
cJSON_Delete(root);
return 0;
}
上述代碼中,我們使用 cJSON 庫(kù)來(lái)解析 JSON 字符串。我們首先使用 cJSON_Parse 函數(shù)將 JSON 字符串解析為 cJSON 對(duì)象。接著,我們使用 cJSON_GetObjectItem 函數(shù)獲取 multi_array 數(shù)組。然后,我們使用 cJSON_GetArraySize 函數(shù)獲取元素的個(gè)數(shù),并使用 cJSON_GetArrayItem 函數(shù)獲取元素的值。注意,我們將 cJSON 對(duì)象轉(zhuǎn)換為值是通過(guò)訪問(wèn) valueint 來(lái)完成的。
最后,我們使用 cJSON_Delete 函數(shù)釋放 cJSON 對(duì)象。