在使用C語言處理JSON數(shù)據(jù)時,我們要給JSON對象動態(tài)添加數(shù)據(jù),以使其包含我們希望在JSON數(shù)據(jù)中保存的所有信息。
// 動態(tài)創(chuàng)建并添加JSON數(shù)據(jù)的示例 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { // 創(chuàng)建JSON對象 json_t *root = json_object(); // 添加字符串類型數(shù)據(jù) json_object_set_new(root, "name", json_string("張三")); // 添加整型類型數(shù)據(jù) json_object_set_new(root, "age", json_integer(20)); // 添加浮點型類型數(shù)據(jù) json_object_set_new(root, "salary", json_real(8000.0)); // 添加布爾類型數(shù)據(jù) json_object_set_new(root, "isMarried", json_boolean(false)); // 添加數(shù)組類型數(shù)據(jù) json_t *arr = json_array(); json_array_append_new(arr, json_string("Java")); json_array_append_new(arr, json_string("C++")); json_array_append_new(arr, json_string("Python")); json_object_set_new(root, "languages", arr); // 添加空值數(shù)據(jù) json_object_set_new(root, "address", json_null()); // 打印JSON數(shù)據(jù) char *json_str = json_dumps(root, JSON_INDENT(4)); printf("%s\n", json_str); // 釋放JSON對象和字符串 json_decref(arr); json_decref(root); free(json_str); return 0; }
在上面的代碼中,我們使用json_object()函數(shù)創(chuàng)建了一個JSON對象,并使用json_object_set_new()函數(shù)向JSON對象中添加了字符串、整型、浮點型、布爾型、數(shù)組型和空值型數(shù)據(jù)。最后,我們使用json_dumps()函數(shù)將JSON對象轉(zhuǎn)換成JSON字符串,并打印它。
在這個示例中,我們使用了jansson庫,這是一個專門用于JSON處理的C語言庫,它提供了方便的API用于創(chuàng)建、解析和操作JSON數(shù)據(jù)。在使用該庫時,我們只需要將其頭文件包含進(jìn)我們的項目中即可。