JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。它使用易于人類閱讀和編寫的文本格式來表示數據對象,具有良好的可讀性和靈活性。C語言中有很多json的解析庫,比如cJSON、jansson等。
其中,cJSON是非常流行的一個JSON解析庫。它具有輕量級和高效的優(yōu)點,可以實現JSON字符串的解析和生成。使用cJSON可以輕松地在C語言中處理JSON格式的數據。
#include <stdio.h> #include <cjson/cJSON.h> int main() { char * json_str = "{\"name\": \"John\", \"age\": 20, \"gender\": \"male\"}"; cJSON * root = cJSON_Parse(json_str); cJSON * name = cJSON_GetObjectItem(root, "name"); cJSON * age = cJSON_GetObjectItem(root, "age"); cJSON * gender = cJSON_GetObjectItem(root, "gender"); printf("name: %s\nage: %d\ngender: %s", name->valuestring, age->valueint, gender->valuestring); cJSON_Delete(root); return 0; }
通過上述代碼,我們可以將一個JSON字符串解析為一個cJSON對象,然后通過cJSON_GetObjectItem函數獲取JSON對象中的具體值。這個函數的返回值是一個cJSON對象,我們可以通過訪問cJSON對象的valuestring或valueint屬性獲取JSON對象中對應的字符串或整數值。
除了解析JSON字符串,還可以使用cJSON庫生成JSON字符串。我們可以通過cJSON_CreateObject函數創(chuàng)建一個JSON對象,然后通過cJSON_AddItemToObject方法向JSON對象中添加鍵值對。最后,我們可以調用cJSON_Print方法將JSON對象轉換為JSON字符串。
#include <stdio.h> #include <cjson/cJSON.h> int main() { cJSON * root = cJSON_CreateObject(); cJSON_AddItemToObject(root, "name", cJSON_CreateString("John")); cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(20)); cJSON_AddItemToObject(root, "gender", cJSON_CreateString("male")); char * json_str = cJSON_Print(root); printf("%s", json_str); cJSON_Delete(root); cJSON_free(json_str); return 0; }
上述代碼將創(chuàng)建一個JSON對象,并添加三個鍵值對。然后,我們使用cJSON_Print方法將JSON對象轉換為JSON字符串,并輸出到控制臺。
總的來說,cJSON是一種在C語言中解析和生成JSON字符串的實用工具。使用cJSON可以讓我們在C語言中輕松處理JSON格式的數據。