C語言是一種非常流行的編程語言,而JSON是一種輕量級的數據交換格式,兩者的結合,可以讓我們快速地將json數據轉化為C語言的實體類,或是將C語言的實體類轉化為json格式,這個過程我們可以使用C JSON庫。
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<jansson.h> // 定義一個實體類 typedef struct { int id; char* name; float price; } Product; // 將實體類轉化為json格式 json_t* product_to_json(Product* product) { json_t* json = json_object(); json_object_set_new(json, "id", json_integer(product->id)); json_object_set_new(json, "name", json_string(product->name)); json_object_set_new(json, "price", json_real(product->price)); return json; } // 將json格式轉化為實體類 Product* json_to_product(json_t* json) { Product* product = malloc(sizeof(Product)); product->id = json_integer_value(json_object_get(json, "id")); product->name = strdup(json_string_value(json_object_get(json, "name"))); product->price = json_real_value(json_object_get(json, "price")); return product; } int main() { // 定義一個Product實體類 Product product = {1, "Apple Watch", 199.99}; // 將實體類轉化為json格式輸出 json_t* json = product_to_json(&product); char* json_str = json_dumps(json, JSON_INDENT(4)); printf("%s\n", json_str); // 將json格式轉化為實體類并輸出 Product* product2 = json_to_product(json); printf("%d %s %f\n", product2->id, product2->name, product2->price); // 釋放內存 free(product2->name); free(product2); json_decref(json); free(json_str); return 0; }
在以上示例代碼中,我們定義了一個Product實體類,然后使用C JSON庫將其轉化為json格式,再將json格式轉化為實體類。通過這種方法,我們可以快速地將需要的數據格式轉化為C語言程序可以使用的實體類,或是將實體類轉化為其他API需要的數據格式,實現數據的交換。