CJSON是一個輕量級的C語言JSON庫,可以用來解析和生成JSON格式的數據。本文將介紹CJSON中如何進行增刪改查的操作。
// 示例JSON格式數據 { "name": "小明", "age": 18, "is_male": true, "hobby": ["sing", "dance", "swim"], "score": { "math": 95, "chinese": 90, "english": 85 } }
1. 增加操作
使用cJSON_AddItemToObject可以向對象中添加新的成員,其原型如下:
cJSON *cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item);
其中,object為要添加成員的對象,string為成員名稱,item為要添加的成員。示例代碼:
cJSON *new_hobby = cJSON_CreateString("play basketball"); cJSON_AddItemToArray(cJSON_GetObjectItem(root, "hobby"), new_hobby);
上述代碼將"play basketball"添加到"hobby"數組中。
2. 刪除操作
使用cJSON_DetachItemFromObject或cJSON_DeleteItemFromObject可以從對象中刪除成員,其中cJSON_DetachItemFromObject會返回被刪除的成員(不會被釋放),而cJSON_DeleteItemFromObject會釋放被刪除的成員。示例代碼:
cJSON *hobby_array = cJSON_GetObjectItem(root, "hobby"); cJSON *last_hobby = cJSON_DetachItemFromArray(hobby_array, cJSON_GetArraySize(hobby_array) - 1); cJSON_DeleteItemFromObject(root, "is_male");
上述代碼將"hobby"數組中的最后一個元素移除,并刪除"is_male"成員。
3. 修改操作
使用cJSON_ReplaceItemInObject或cJSON_ReplaceItemInArray可以用新的成員替換舊的成員,其中cJSON_ReplaceItemInObject用于對象,cJSON_ReplaceItemInArray用于數組。示例代碼:
cJSON *new_name = cJSON_CreateString("小紅"); cJSON_ReplaceItemInObject(root, "name", new_name);
上述代碼將"name"成員修改為"小紅"。
4. 查詢操作
使用cJSON_GetObjectItem或cJSON_GetArrayItem可以獲取對象或數組中的成員,其中cJSON_GetObjectItem可以接受對象和數組作為參數,而cJSON_GetArrayItem只能接受數組作為參數。示例代碼:
cJSON *math_score = cJSON_GetObjectItem(cJSON_GetObjectItem(root, "score"), "math"); cJSON *second_hobby = cJSON_GetArrayItem(cJSON_GetObjectItem(root, "hobby"), 1);
上述代碼分別獲取了"math"成員和"hobby"數組中的第二個元素。