C JSON 是一個用于處理 JSON 數據的庫,它提供了豐富的函數和選項來方便地讀取、寫入、修改 JSON 數據。在使用 C JSON 處理 JSON 數據時,有時需要判斷一個 JSON 對象或數組是否為空,這在循環讀取或修改 JSON 數據時尤為重要。
判斷 JSON 對象是否為空可以使用 cJSON_NULL 宏判斷一個 cJSON 結構是否為空,如下所示:
cJSON *root = cJSON_Parse(my_json_data); // 解析 JSON 數據 if (root == NULL || root->type == cJSON_NULL) { printf("JSON 對象為空"); }
如果 JSON 對象為空,則利用 cJSON_Parse 函數解析 JSON 數據后返回的 cJSON 指針為 NULL,或者 cJSON 結構的 type 屬性值為 cJSON_NULL。判斷 JSON 數組是否為空可以使用 cJSON_IsArray 和 cJSON_GetArraySize 函數來判斷一個 cJSON 結構是否為數組及其大小,如下所示:
cJSON *array = cJSON_GetObjectItem(root, "my_array"); if (array != NULL && cJSON_IsArray(array) && cJSON_GetArraySize(array) == 0) { printf("JSON 數組為空"); }
這里使用 cJSON_GetObjectItem 函數獲取 JSON 對象中名為 "my_array" 的 cJSON 結構,然后利用 cJSON_IsArray 函數判斷它是否為數組,再利用 cJSON_GetArraySize 函數判斷其大小是否為 0。如果 JSON 數組為空,則輸出提示信息。