在 C 語言中,使用 JSON 格式的數據已經成為了很常見的事情。而在使用 JSON 數據時,我們需要對其進行解析和查看,這時可以使用 CJSON 庫來完成任務。
#include <stdio.h> #include <cjson/cJSON.h> // 引入 CJSON 庫 int main() { char *json = "{"name": "Bob", "age": 25, "hobby": ["reading", "traveling"]}"; cJSON *root = cJSON_Parse(json); // 解析 JSON 數據 if (root == NULL) { printf("JSON parse error: %s\n", cJSON_GetErrorPtr()); return 1; } // 獲取 JSON 數據中的值 cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *hobby = cJSON_GetObjectItem(root, "hobby"); // 輸出獲取到的值 printf("name: %s\n", name->valuestring); printf("age: %d\n", age->valueint); int hobbySize = cJSON_GetArraySize(hobby); for (int i = 0; i< hobbySize; i++) { cJSON *hobbyItem = cJSON_GetArrayItem(hobby, i); printf("hobby[%d]: %s\n", i, hobbyItem->valuestring); } cJSON_Delete(root); // 釋放內存空間 return 0; }
以上就是一個簡單的使用 CJSON 庫查看 JSON 數據的程序,其中 cJSON_Parse 函數用于解析 JSON 數據,返回一個 cJSON 對象。而 cJSON_GetObjectItem 函數又可以通過對象名稱獲取對應的值。在獲取數組類型的值時,需要使用 cJSON_GetArraySize 函數來獲取數組大小,并使用 cJSON_GetArrayItem 函數遍歷獲取數組元素。