色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 中將對象轉換成json

夏志豪2年前14瀏覽0評論

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ā)效率和程序運行效率。