JSON(JavaScript Object Notation)是一種輕量級數據交換格式。在C語言中,可以使用第三方庫來創建和處理JSON數據。其中比較流行的有cJSON,Jansson等庫。
使用cJSON庫創建JSON數據時,需要先定義一個cJSON對象,并對其進行初始化。可以通過cJSON_CreateObject來創建一個空的JSON對象,也可以通過cJSON_Parse函數將JSON字符串轉換為cJSON對象。然后使用cJSON_AddItemToObject或cJSON_AddItemToArray向JSON對象中添加鍵值對或數組元素。最后使用cJSON_Print函數將cJSON對象轉換為JSON格式的字符串。
#include <stdio.h> #include <cjson/cJSON.h> int main() { // 創建JSON對象 cJSON *root = cJSON_CreateObject(); // 添加鍵值對 cJSON_AddItemToObject(root, "name", cJSON_CreateString("張三")); cJSON_AddItemToObject(root, "age", cJSON_CreateNumber(20)); // 創建數組 cJSON *array = cJSON_CreateArray(); cJSON_AddItemToArray(array, cJSON_CreateString("語文")); cJSON_AddItemToArray(array, cJSON_CreateString("數學")); cJSON_AddItemToArray(array, cJSON_CreateString("英語")); cJSON_AddItemToObject(root, "courses", array); // 將JSON對象序列化為字符串 char *jsonStr = cJSON_Print(root); printf("JSON字符串:%s\n", jsonStr); // 釋放內存 cJSON_Delete(root); free(jsonStr); return 0; }
使用Jansson庫創建JSON數據時,也需要先定義一個json_t對象,并對其進行初始化。可以通過json_object和json_array函數來創建一個空的JSON對象或數組。然后使用json_object_set或json_array_append向JSON對象中添加鍵值對或數組元素。最后使用json_dumps函數將json_t對象轉換為JSON格式的字符串。
#include <stdio.h> #include <jansson.h> int main() { // 創建JSON對象 json_t *root = json_object(); // 添加鍵值對 json_object_set(root, "name", json_string("張三")); json_object_set(root, "age", json_integer(20)); // 創建數組 json_t *array = json_array(); json_array_append(array, json_string("語文")); json_array_append(array, json_string("數學")); json_array_append(array, json_string("英語")); json_object_set(root, "courses", array); // 將JSON對象序列化為字符串 char *jsonStr = json_dumps(root, JSON_INDENT(2)); printf("JSON字符串:%s\n", jsonStr); // 釋放內存 json_decref(root); free(jsonStr); return 0; }