C JSON實體存儲指的是將JSON數(shù)據(jù)存儲為實體對象,通常采用C語言處理JSON數(shù)據(jù)。下面是一個簡單的C程序,演示了如何將JSON數(shù)據(jù)存儲為實體:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> typedef struct { int id; char *name; double price; } Product; Product* load_product(json_t* root) { Product* product = (Product*)malloc(sizeof(Product)); json_t* id = json_object_get(root, "id"); json_t* name = json_object_get(root, "name"); json_t* price = json_object_get(root, "price"); product->id = json_integer_value(id); product->name = json_string_value(name); product->price = json_real_value(price); return product; } int main() { char* json_str = "{\"id\":123,\"name\":\"product1\",\"price\":4.99}"; json_error_t err; json_t* root = json_loads(json_str, 0, &err); Product* product = load_product(root); printf("id: %d, name: %s, price: %f\n", product->id, product->name, product->price); json_decref(root); free(product); return 0; }
代碼中定義了一個Product結(jié)構(gòu)體,用于存儲JSON數(shù)據(jù)。load_product函數(shù)把JSON數(shù)據(jù)轉(zhuǎn)換為Product對象,方便業(yè)務(wù)代碼使用。使用json_loads函數(shù)將JSON字符串解析為JSON對象,使用json_object_get函數(shù)獲取JSON對象中的屬性值,調(diào)用json_integer_value、json_string_value、json_real_value將屬性值轉(zhuǎn)為對應(yīng)的C類型,并存入Product結(jié)構(gòu)體中。應(yīng)用程序中只需傳入JSON對象即可獲取Product對象,具體業(yè)務(wù)邏輯可以針對Product對象進行。