C JSON 解析是一種在 C 語言中操作 JSON 數據的方式。在 C 語言中,C JSON 解析已經非常成熟和廣泛應用。一些著名的 C JSON 解析庫例如 jansson, cJSON 等等。
在本文中,我們將介紹 C JSON 解析庫 cJSON 的第六種用法。cJSON_GetArrayItem 函數可以獲取數組項。
/* 例子一 */ cJSON *root = cJSON_Parse(json_str); /* 解析 JSON 字符串 */ cJSON *array = cJSON_GetObjectItem(root, "array"); /* 獲取數組 */ if (cJSON_IsArray(array)) { int size = cJSON_GetArraySize(array); /* 獲取數組大小 */ for (int i = 0; i< size; i++) { cJSON *item = cJSON_GetArrayItem(array, i); /* 獲取數組項 */ if (cJSON_IsString(item)) /* 判斷是否是字符串 */ { printf("string: %s\n", item->valuestring); } else if (cJSON_IsNumber(item)) /* 判斷是否是數字 */ { printf("number: %g\n", item->valuedouble); } } } cJSON_Delete(root); /* 釋放內存 */
在上面的例子中,我們首先使用 cJSON_Parse 函數將 JSON 字符串解析為 cJSON 對象。然后,我們使用 cJSON_GetObjectItem 函數獲取 "array" 這個鍵所對應的數組。
如果獲取到的這個 cJSON 對象確實是個數組,那么我們就可以使用 cJSON_GetArraySize 函數獲取這個數組的大小,然后使用一個循環遍歷數組所有的項。每一項都可以用 cJSON_GetArrayItem 獲取到。
cJSON_GetArrayItem 函數的第一個參數是要獲取的數組的 cJSON 指針,第二個參數則是要獲取的項的下標。
如果獲取到的這個項是字符串,那么我們可以通過訪問 item->valuestring 來獲取這個字符串的值。
如果獲取到的這個項是數字,那么我們可以通過訪問 item->valuedouble 來獲取這個數字的值。
最后我們需要釋放 cJSON 對象所分配的內存。在 cJSON 中,我們可以使用 cJSON_Delete 函數來完成這個操作。
上一篇mysql刪除聯合主鍵
下一篇Python 數組加一