C語言是一門高效、強大的編程語言,常用于編寫各類系統(tǒng)級和網(wǎng)絡應用。而以JSON格式為代表的輕量級數(shù)據(jù)交換格式,也成為現(xiàn)代應用程序中廣泛使用的數(shù)據(jù)格式。如何將C語言中的對象轉換成JSON格式,是一個必須掌握的技能。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <json-c/json.h> int main(void) { struct json_object *obj = json_object_new_object(); struct json_object *str = json_object_new_string("Hello World!"); json_object_object_add(obj, "message", str); char *json_str = json_object_to_json_string(obj); printf("%s\n", json_str); free(json_str); json_object_put(obj); return 0; }
上述代碼使用了json-c庫,首先創(chuàng)建一個JSON對象,然后向其中添加一個字符串類型的鍵值對,并將JSON對象轉換成字符串格式,最后打印輸出。需要注意的是,動態(tài)分配的JSON字符串在使用完畢后需要手動釋放。
除了字符串類型,JSON格式還支持數(shù)字、布爾、數(shù)組等各種數(shù)據(jù)類型。對于復雜的C語言結構體或者對象,需要進行逐一分解并將每個屬性轉換成對應的JSON格式。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <json-c/json.h> struct person { char *name; int age; }; void person_to_json(struct person *p, struct json_object *obj) { struct json_object *name = json_object_new_string(p->name); struct json_object *age = json_object_new_int(p->age); json_object_object_add(obj, "name", name); json_object_object_add(obj, "age", age); } int main(void) { struct person p = {"Alice", 20}; struct json_object *obj = json_object_new_object(); person_to_json(&p, obj); char *json_str = json_object_to_json_string(obj); printf("%s\n", json_str); free(json_str); json_object_put(obj); return 0; }
上述代碼定義了一個Person結構體,包含名字和年齡兩個屬性。使用person_to_json函數(shù)將結構體轉換成JSON對象,然后進行輸出。
轉換C語言對象為JSON格式是一個常見的任務,掌握JSON-C庫的使用技巧,可以提高開發(fā)效率和程序運行效率。
上一篇python 腳本樣例
下一篇c 中將類轉換為json