C JSON是一種輕量級的數據交換格式,常用于互聯網應用程序之間的數據交換,因為它易于閱讀和編寫。在C語言中,有一些處理JSON數據的類,這些類可以幫助開發人員輕松解析和生成JSON數據,使數據交換更加簡單和高效。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { const char *json_string = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }"; json_error_t error; json_t *root = json_loads(json_string, 0, &error); if(!root) { printf("JSON Error: %s\n", error.text); return -1; } json_t *name = json_object_get(root, "name"); const char *name_str = json_string_value(name); printf("Name: %s\n", name_str); json_decref(root); return 0; }
上述代碼調用了jansson庫中的json_loads函數來解析JSON字符串。這個函數返回一個json_t對象,表示JSON數據的根元素。然后,我們使用json_object_get函數從根元素中獲取名為“name”的對象,并使用json_string_value函數獲取該對象的字符串值。最后,我們調用json_decref函數釋放根元素。
除了解析JSON數據,jansson庫還提供了生成JSON數據的函數。例如,我們可以使用json_object、json_array和json_string等函數來創建JSON對象、數組和字符串,然后使用json_dump函數將它們轉換為JSON字符串。下面的代碼演示了如何生成和輸出一個JSON字符串:
#include <stdio.h> #include <stdlib.h> #include <jansson.h> int main() { json_t *root = json_object(); json_object_set_new(root, "name", json_string("John")); json_object_set_new(root, "age", json_integer(30)); json_object_set_new(root, "city", json_string("New York")); char *json_str = json_dumps(root, 0); printf("JSON: %s\n", json_str); free(json_str); json_decref(root); return 0; }
這個例子創建了一個JSON對象,并使用json_object_set_new函數添加了三個元素:“name”、“age”和“city”。然后,我們使用json_dumps函數將JSON對象轉換為JSON字符串,再輸出它。最后,我們使用free函數釋放字符串,使用json_decref函數釋放JSON對象。
總之,C JSON處理類可以幫助開發人員輕松地解析和生成JSON數據,從而使數據交換更加簡單和高效。
下一篇c json 在線測試