JSON是一種經常用于實現數據交換的輕量級數據格式。在C語言中,很多時候需要將JSON數據轉換成C數據類型來進行進一步的處理和操作。下面介紹C中如何實現JSON數據類型轉換。
#include <stdio.h> #include <jansson.h> int main() { char *json_string = "{\"name\": \"John\", \"age\": 30, \"isMarried\": true}"; json_t *root = NULL; json_error_t error; // 解析JSON字符串并生成JSON對象 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 *isMarried = json_object_get(root, "isMarried"); // JSON類型轉換成C數據類型 const char *name_value = json_string_value(name); int age_value = json_integer_value(age); int isMarried_value = json_boolean_value(isMarried); // 打印結果 printf("Name: %s\n", name_value); printf("Age: %d\n", age_value); printf("Is Married: %s\n", isMarried_value ? "True" : "False"); // 釋放JSON對象內存 json_decref(root); return 0; }
在上述代碼中,首先需要引入json.h頭文件。然后,我們需要解析JSON字符串并生成JSON對象。json_loads函數用于將JSON字符串解析成JSON對象,第二個參數為解析標志,一般為0,第三個參數用于存儲解析的錯誤信息。
接著,我們需要獲取JSON對象中的各個鍵值對。json_object_get函數用于獲取JSON對象中指定鍵對應的值。需要注意的是,獲取的是JSON類型的值,需要通過相應的函數將其轉換為相應的C數據類型。
最后,我們打印出各個轉換后的值,并通過json_decref函數釋放JSON對象的內存。