JSON是一種用于數據交換的格式,由于它的易讀性和簡潔性,得到了廣泛使用。但是,有時我們需要自定義一種JSON格式,以滿足實際情況下的需求。在C語言中,我們可以使用結構體來表示一個JSON對象,通過自定義的結構體,我們可以實現自定義的JSON格式。
typedef struct { char* name; int age; char* gender; } Person; void to_json(json_object* jobj, const Person* person) { json_object* jname = json_object_new_string(person->name); json_object_object_add(jobj, "name", jname); json_object* jage = json_object_new_int(person->age); json_object_object_add(jobj, "age", jage); json_object* jgender = json_object_new_string(person->gender); json_object_object_add(jobj, "gender", jgender); } void from_json(const json_object* jobj, Person* person) { json_object* jname = json_object_object_get(jobj, "name"); strcpy(person->name, json_object_get_string(jname)); json_object* jage = json_object_object_get(jobj, "age"); person->age = json_object_get_int(jage); json_object* jgender = json_object_object_get(jobj, "gender"); strcpy(person->gender, json_object_get_string(jgender)); }
以上代碼定義了一個名為Person的結構體,它包括name、age和gender三個字段。to_json函數將Person對象序列化為JSON對象,from_json函數將JSON對象反序列化為Person對象,從而實現了自定義JSON格式。
在使用時,我們可以將一個Person對象轉換為自定義的JSON格式:
Person p = {"Alice", 18, "female"}; json_object* jobj = json_object_new_object(); to_json(jobj, &p); const char* json_str = json_object_to_json_string(jobj);
得到的JSON字符串如下:
{ "name": "Alice", "age": 18, "gender": "female" }
這就是一個自定義的JSON格式,它符合我們實際需求。在C語言中,通過自定義結構體和序列化、反序列化函數,在一定程度上可以實現自定義JSON格式的需求。
上一篇vue html表格
下一篇vue html混用