欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 判斷json數(shù)目

在 C 語言中,我們可以使用 cJSON 庫來解析 JSON 數(shù)據(jù),判斷 JSON 中元素的個(gè)數(shù)也可以通過該庫實(shí)現(xiàn)。

#include <stdio.h>
#include <cjson/cJSON.h>
int main() {
char* json_str = "{ \"name\": \"Tom\", \"age\": 20, \"address\": { \"city\": \"Beijing\", \"district\": \"Haidian\" } }";
cJSON *root = cJSON_Parse(json_str);
int size = cJSON_GetArraySize(root);
printf("Size of JSON is %d\n", size); // 輸出 0
return 0;
}

上面的代碼中,我們定義了一個(gè) JSON 字符串,并將其解析為 cJSON 對(duì)象。我們使用 cJSON_GetArraySize 函數(shù)獲取 JSON 對(duì)象的大小,如果返回值為 0,則說明 JSON 中沒有數(shù)組。

如果我們要獲取 JSON 中對(duì)象的個(gè)數(shù),則需要遞歸遍歷 JSON 樹才能得到正確的結(jié)果。

#include <stdio.h>
#include <cjson/cJSON.h>
int get_json_size(cJSON* node) {
if (node == NULL) {
return 0;
}
int size = 0;
cJSON* child = node->child;
while (child != NULL) {
size++;
child = child->next;
}
return size;
}
int main() {
char* json_str = "{ \"name\": \"Tom\", \"age\": 20, \"address\": { \"city\": \"Beijing\", \"district\": \"Haidian\" } }";
cJSON *root = cJSON_Parse(json_str);
int size = get_json_size(root);
printf("Size of JSON is %d\n", size); // 輸出 3
return 0;
}

在上面的代碼中,我們定義了一個(gè)名為 get_json_size 的函數(shù),用于遞歸遍歷 JSON 樹獲取 JSON 對(duì)象的個(gè)數(shù)。遍歷時(shí),我們先判斷當(dāng)前節(jié)點(diǎn)是否為 NULL,如果不是 NULL,則遍歷該節(jié)點(diǎn)下面的所有子節(jié)點(diǎn),如果還有兄弟節(jié)點(diǎn)則繼續(xù)遍歷。如果到達(dá)葉子節(jié)點(diǎn),則將大小加一。

通過這種方式,我們可以精確地獲取 JSON 對(duì)象的子元素個(gè)數(shù)。