在C語(yǔ)言中,將類(lèi)對(duì)象轉(zhuǎn)成JSON字符串是一種常見(jiàn)的需求。JSON是一種輕量級(jí)數(shù)據(jù)交換格式,為了便于網(wǎng)絡(luò)數(shù)據(jù)傳輸而設(shè)計(jì)。下面我們介紹如何實(shí)現(xiàn)在C語(yǔ)言中將類(lèi)對(duì)象轉(zhuǎn)成JSON字符串。
#include <stdio.h> #include <stdlib.h> #include <jansson.h> typedef struct { int id; char name[20]; double score; } Student; json_t *student_to_json(Student *s) { json_t *root = json_object(); json_object_set_new(root, "id", json_integer(s->id)); json_object_set_new(root, "name", json_string(s->name)); json_object_set_new(root, "score", json_real(s->score)); return root; } int main() { Student s = {1, "Tom", 99.5}; json_t *json = student_to_json(&s); char *json_str = json_dumps(json, JSON_PRESERVE_ORDER); printf("JSON result: %s\n", json_str); free(json_str); json_decref(json); return 0; }
代碼中定義了一個(gè)Student結(jié)構(gòu)體,包含學(xué)生ID、姓名和分?jǐn)?shù)。student_to_json函數(shù)將Student對(duì)象轉(zhuǎn)成JSON對(duì)象,再通過(guò)json_dumps函數(shù)將JSON對(duì)象轉(zhuǎn)成JSON字符串。最后釋放內(nèi)存和引用計(jì)數(shù)。
以上就是C語(yǔ)言中將類(lèi)對(duì)象轉(zhuǎn)成JSON字符串的簡(jiǎn)單介紹。