色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 嵌套多重json數組

林雅南1年前9瀏覽0評論

在C語言中,處理JSON數據結構通常需要用到第三方庫。常見的JSON解析庫有cJSON、jansson等。其中,cJSON是比較輕量級的一種庫,可以方便地解析JSON數據。

對于簡單的JSON數據,使用cJSON庫很容易處理。但是,當JSON數據包含多重嵌套的數組時,則需要使用多個循環來對其進行處理。下面是一個使用cJSON庫處理多重嵌套JSON數組的例子:

#include <stdio.h>
#include <cJSON.h>
int main()
{
char* json_str = "{
\"name\": \"Tom\",
\"scores\": [
{
\"subject\": \"Math\",
\"score\": 90
},
{
\"subject\": \"English\",
\"score\": 85
},
{
\"subject\": \"Chinese\",
\"score\": 95
}
]
}";
cJSON* root = cJSON_Parse(json_str);
cJSON* scores = cJSON_GetObjectItem(root, "scores");
int scores_size = cJSON_GetArraySize(scores);
for (int i = 0; i < scores_size; i++) {
cJSON* score = cJSON_GetArrayItem(scores, i);
cJSON* subject = cJSON_GetObjectItem(score, "subject");
cJSON* s_score = cJSON_GetObjectItem(score, "score");
printf("%s: %d\n", subject->valuestring, s_score->valueint);
}
cJSON_Delete(root);
return 0;
}

上述代碼中,我們首先定義了一個JSON字符串,包含一個name字段和一個嵌套的scores數組。我們使用cJSON庫的cJSON_Parse函數將其解析為一個cJSON對象。接著,我們使用cJSON_GetObjectItem函數獲取scores數組,并使用cJSON_GetArraySize獲取scores數組的大小。

接下來,我們使用for循環遍歷scores數組,并使用cJSON_GetArrayItem函數獲取數組中的每個元素。然后,我們再使用cJSON_GetObjectItem函數獲取每個元素中的subject和score字段,并輸出它們的值。

最后,我們使用cJSON_Delete函數來釋放cJSON對象占用的內存。