C語言是一種非常流行的編程語言,它廣泛應用于各個領域。隨著瀏覽器端和服務器端交互的普及,JSON(JavaScript Object Notation)成為了數據交互的一種常用格式。在C語言開發中,我們也需要使用JSON格式來進行數據的處理和交互。為了方便操作JSON數據,我們通常使用JSON序列化技術來把C結構體轉化為JSON對象。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> #define MAX_LIST_LENGTH 100 typedef struct { char name[20]; int age; float score; } student; int main() { student stu[MAX_LIST_LENGTH]; // 初始化student數組... json_t *root = json_array(); for (int i = 0; i< MAX_LIST_LENGTH; i++) { json_t *item = json_object(); json_object_set_new(item, "name", json_string(stu[i].name)); json_object_set_new(item, "age", json_integer(stu[i].age)); json_object_set_new(item, "score", json_real(stu[i].score)); json_array_append_new(root, item); } char *json_data = json_dumps(root, JSON_INDENT(4)); // 把json_data寫入文件... json_decref(root); free(json_data); return 0; }
以上的代碼使用了jansson庫來完成JSON序列化。我們定義了一個student結構體,然后生成了一個存儲student數組的JSON對象。在使用json_object_set_new函數時,我們將C字符串、整型和浮點型轉換為JSON字符串、JSON整型和JSON浮點型,將其作為JSON對象中的鍵值對保存。在循環完畢后,我們使用json_dumps函數把整個JSON數組轉換為一個JSON字符串,最后將其寫入文件。
上一篇go json 遍歷