C是一種流行的編程語言,可以解析JSON對象。JSON是JavaScript對象表示法的縮寫,是一種輕量級數據交換格式。在現代Web開發中,JSON經常用于通過HTTP請求和響應傳輸數據。
要解析JSON對象,我們需要使用C的JSON庫。這個庫將JSON解析為C數據結構,如數組和字典。在解析之前,我們需要準備一個JSON字符串,這個字符串包含我們想要轉換的JSON對象。
#include <stdio.h> #include <jansson.h> int main() { // JSON字符串 char *json_string = "{\"name\": \"Tom\", \"age\": 25, \"likes\": [\"coding\", \"reading\"]}"; // 解析JSON字符串 json_error_t error; json_t *root = json_loads(json_string, 0, &error); // 獲取JSON對象的成員 json_t *name = json_object_get(root, "name"); json_t *age = json_object_get(root, "age"); json_t *likes = json_object_get(root, "likes"); // 獲取成員的值 const char *name_value = json_string_value(name); int age_value = json_integer_value(age); printf("Name: %s\n", name_value); printf("Age: %d\n", age_value); // 遍歷JSON數組 size_t i; json_t *value; json_array_foreach(likes, i, value) { const char *like = json_string_value(value); printf("Like %lu: %s\n", i, like); } // 釋放內存 json_decref(root); return 0; }
在上面的代碼示例中,我們首先定義了一個JSON字符串,包含一個人的姓名,年齡和興趣愛好。然后我們使用json_loads()函數將其解析為json_t類型的根對象。
為了獲取JSON對象的成員,我們可以使用json_object_get()函數,并傳遞成員的名稱作為參數。我們可以使用一些方便的函數,如json_string_value()或json_integer_value()來獲取成員的值。
如果我們正在處理JSON數組,則必須使用json_array_foreach()函數來遍歷該數組。此函數以JSON數組和指向處理每個數組元素的回調函數作為參數。
最后,我們需要使用json_decref()函數來釋放解析JSON后分配的內存。 如果不這樣做,將可能出現內存泄漏。
上一篇c 解析json 弱類型
下一篇python 除小數點