當(dāng)我們?cè)诰帉?C 程序時(shí),經(jīng)常需要將 C 中的數(shù)據(jù)類型轉(zhuǎn)換為其它格式以便進(jìn)行數(shù)據(jù)交換。其中,將 C 類轉(zhuǎn)換為 JSON 格式是經(jīng)常會(huì)用到的場(chǎng)景之一。下面我們將介紹如何使用 C 語言將類轉(zhuǎn)換為 JSON。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> typedef struct { char *name; int age; float height; float weight; } Person; char *person_to_json(Person *person) { json_t *root = json_pack("{s:s, s:i, s:f, s:f}", "name", person->name, "age", person->age, "height", person->height, "weight", person->weight ); char *json_str = json_dumps(root, 0); json_decref(root); return json_str; } int main() { Person person = {"Tom", 30, 180.0, 70.0}; char *json_str = person_to_json(&person); printf("%s\n", json_str); free(json_str); return 0; }
如上述代碼所示,我們首先定義了一個(gè) Person 結(jié)構(gòu)體,其中包含姓名、年齡、身高和體重等信息。接著編寫了 person_to_json 函數(shù),用于將 Person 類中的數(shù)據(jù)轉(zhuǎn)換為 JSON 格式。在函數(shù)中,我們借助 jansson 庫提供的 API 函數(shù),創(chuàng)建了一個(gè) JSON 對(duì)象,將 Person 類中的字段逐個(gè)寫入到創(chuàng)建的 JSON 對(duì)象中,并最終將 JSON 對(duì)象轉(zhuǎn)換為字符串并返回。
最后,在主函數(shù)中,我們創(chuàng)建了一個(gè) Person 對(duì)象,并調(diào)用 person_to_json 函數(shù)將其轉(zhuǎn)換為 JSON 格式的字符串,輸出到控制臺(tái)上。
總結(jié)來說,使用 C 語言將類轉(zhuǎn)換為 JSON 的方法十分簡(jiǎn)單。只需要在程序中引入 jansson 庫,使用庫中提供的 API 函數(shù)即可輕松完成類與 JSON 的互相轉(zhuǎn)換。