在C語(yǔ)言中,判斷JSON value是否為空可以使用一些庫(kù)函數(shù)進(jìn)行操作。
#include#include #include #include "cJSON.h" int main() { char *json_str = "{\"name\":\"xiaoming\",\"age\":null,\"hobby\":[]}"; cJSON *root = cJSON_Parse(json_str); // 解析json字符串 cJSON *age = cJSON_GetObjectItem(root, "age"); // 獲取age字段 cJSON *hobby = cJSON_GetObjectItem(root, "hobby"); // 獲取hobby字段 if(cJSON_IsNull(age)) // 判斷age字段是否為null { printf("age字段為空\(chéng)n"); } else { printf("age字段不為空\(chéng)n"); } if(cJSON_IsArray(hobby) && cJSON_GetArraySize(hobby) == 0) // 判斷hobby字段是否為空數(shù)組 { printf("hobby字段為空數(shù)組\n"); } else { printf("hobby字段不為空數(shù)組\n"); } cJSON_Delete(root); // 釋放內(nèi)存 return 0; }
以上代碼使用了cJSON庫(kù)進(jìn)行JSON字符串的解析,并通過(guò)cJSON的API函數(shù)cJSON_GetObjectItem獲取了需要判斷的字段,最后通過(guò)cJSON_IsNull和cJSON_IsArray函數(shù)進(jìn)行判斷。
對(duì)于其他情況,我們還可以使用類似的方法進(jìn)行判斷。使用cJSON庫(kù),能夠方便地解析和操作JSON數(shù)據(jù),是C語(yǔ)言開(kāi)發(fā)者不錯(cuò)的選擇。