在使用 C 語言解析 JSON 格式時,我們必須先解析出所有的 JSON 對象屬性,然后才能訪問它們。但是有時候我們并不關心解析出來的所有屬性,而只關心個別屬性。
在這種情況下,我們可以使用 CJSON 庫提供的忽略特定屬性的功能。這個功能使用以下形式的函數:
cJSON *cJSON_DetachItemFromArray(cJSON *array, int which); cJSON *cJSON_DetachItemFromObject(cJSON *object, const char *string);
上面的cJSON_DetachItemFromArray
函數可以從array
中刪除第which
個元素,并返回它。如果which
超出了數組索引范圍,則函數返回NULL
。
類似地,cJSON_DetachItemFromObject
函數可以從object
中刪除指定名稱的屬性,并返回它。如果該屬性不存在,則函數返回NULL
。
以下是使用這些函數來忽略屬性的示例:
cJSON *root = cJSON_Parse(...); if (root != NULL) { cJSON_DetachItemFromArray(root, 0); //忽略第一個屬性 cJSON_DetachItemFromObject(root, "ignored_property"); //忽略名為 "ignored_property" 的屬性 ... cJSON_Delete(root); }
以上代碼會解析出 JSON 字符串,并將其轉換為對應的 CJSON 對象。然后,它使用cJSON_DetachItemFromArray
和cJSON_DetachItemFromObject
函數忽略掉數組中的第一個元素和對象中名為 "ignored_property" 的屬性。最后,它使用cJSON_Delete
函數釋放 CJSON 對象及其內存。
上一篇c json指定字段
下一篇h2數據庫不認json