在C編程中,我們常常需要將數(shù)據(jù)存儲(chǔ)或傳遞給其他的系統(tǒng)或應(yīng)用程序。這時(shí),將數(shù)據(jù)保存為JSON格式是一種常用的方法。在本文中,我們將學(xué)習(xí)如何使用C語言將數(shù)據(jù)集轉(zhuǎn)換為JSON格式。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
// 定義數(shù)據(jù)集結(jié)構(gòu)體
typedef struct {
char *name;
int age;
float salary;
} Employee;
int main() {
// 初始化數(shù)據(jù)集
Employee emp1 = {"Jack Ma", 55, 50000.00};
Employee emp2 = {"Pony Ma", 50, 40000.00};
Employee emp3 = {"Robin Li", 52, 45000.00};
// 創(chuàng)建JSON數(shù)組
json_t *array = json_array();
// 將每個(gè)數(shù)據(jù)集轉(zhuǎn)換為JSON對(duì)象
json_t *emp1_obj = json_pack("{s:s, s:i, s:f}", "name", emp1.name, "age", emp1.age, "salary", emp1.salary);
json_t *emp2_obj = json_pack("{s:s, s:i, s:f}", "name", emp2.name, "age", emp2.age, "salary", emp2.salary);
json_t *emp3_obj = json_pack("{s:s, s:i, s:f}", "name", emp3.name, "age", emp3.age, "salary", emp3.salary);
// 將JSON對(duì)象添加到JSON數(shù)組中
json_array_append_new(array, emp1_obj);
json_array_append_new(array, emp2_obj);
json_array_append_new(array, emp3_obj);
// 將JSON數(shù)組轉(zhuǎn)換為字符串
char *json_str = json_dumps(array, JSON_INDENT(4));
// 輸出JSON字符串
printf("%s\n", json_str);
// 釋放內(nèi)存
free(emp1.name);
free(emp2.name);
free(emp3.name);
free(json_str);
json_decref(array);
json_decref(emp1_obj);
json_decref(emp2_obj);
json_decref(emp3_obj);
return 0;
}
在以上示例代碼中,我們首先定義了一個(gè)結(jié)構(gòu)體Employee,用于表示雇員信息。然后創(chuàng)建了三個(gè)數(shù)據(jù)集實(shí)例,表示三個(gè)雇員。接著,我們創(chuàng)建了一個(gè)JSON數(shù)組用于存儲(chǔ)這三個(gè)數(shù)據(jù)集。使用json_pack函數(shù)將每個(gè)數(shù)據(jù)集轉(zhuǎn)換為JSON對(duì)象,并將其添加到JSON數(shù)組中。最后,使用json_dumps函數(shù)將JSON數(shù)組轉(zhuǎn)換為字符串。
這里我們使用了jansson庫,它是一個(gè)C語言編寫的輕量級(jí)JSON庫,提供了簡單易用的API,可以方便地將C數(shù)據(jù)類型轉(zhuǎn)換為JSON格式。