在C語言中,自定義類的轉(zhuǎn)化成json的操作可以通過一些庫來實(shí)現(xiàn),例如json-c,jansson等等。
下面是使用json-c庫實(shí)現(xiàn)一個(gè)自定義類Person轉(zhuǎn)化成json的例子:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <json-c/json.h> typedef struct _Person { char *name; int age; char *address; } Person; int main() { Person person = {"Jack", 25, "Chengdu"}; struct json_object *jobj_person = json_object_new_object(); json_object_object_add(jobj_person, "name", json_object_new_string(person.name)); json_object_object_add(jobj_person, "age", json_object_new_int(person.age)); json_object_object_add(jobj_person, "address", json_object_new_string(person.address)); char *json_str = json_object_to_json_string(jobj_person); printf("%s\n", json_str); json_object_put(jobj_person); free(json_str); return 0; }
首先定義了一個(gè)自定義類Person。然后在main函數(shù)中,將Person轉(zhuǎn)化成一個(gè)json_object類型的結(jié)構(gòu)體,然后將name,age和address字段作為json_object類型的子節(jié)點(diǎn)添加到了person對(duì)象中,最后調(diào)用json_object_to_json_string函數(shù)將json對(duì)象轉(zhuǎn)化成字符串并進(jìn)行輸出。
使用json-c庫進(jìn)行json的處理還有很多細(xì)節(jié),需要大家具體根據(jù)項(xiàng)目需求進(jìn)行進(jìn)一步的學(xué)習(xí)和實(shí)踐。