在 C 語言中,對象的表示形式通常是結構體(struct)。如果要將這些結構體轉換為 JSON 字符串數組,我們可以使用 JSON 庫來完成這項任務。JSON 庫提供了一些函數,可以將結構體對象轉換為 JSON 格式的字符串。
#include <stdio.h> #include <jansson.h> typedef struct { int id; char name[20]; double price; } Product; int main() { Product products[3]; products[0].id = 1001; strcpy(products[0].name, "Product A"); products[0].price = 10.5; products[1].id = 1002; strcpy(products[1].name, "Product B"); products[1].price = 20.5; products[2].id = 1003; strcpy(products[2].name, "Product C"); products[2].price = 30.5; json_t *array = json_array(); for (int i = 0; i < 3; i++) { json_t *product = json_object(); json_t *id = json_integer(products[i].id); json_t *name = json_string(products[i].name); json_t *price = json_real(products[i].price); json_object_set(product, "id", id); json_object_set(product, "name", name); json_object_set(product, "price", price); json_array_append(array, product); } char *json_str = json_dumps(array, JSON_INDENT(4)); printf("%s\n", json_str); free(json_str); json_decref(array); return 0; }
在上面的代碼中,我們創建了一個名為 "產品" 的結構體,其中包含 ID、名稱和價格。我們將 3 個產品添加到數組中,并使用 JSON 庫中的函數將它們轉換為 JSON 格式的字符串。
具體來說,我們首先創建一個空的 JSON 數組(json_array)。然后,對于每個產品,我們創建一個 JSON 對象、一個 ID 的整數、一個名稱的字符串和一個價格的實數。我們使用 json_object_set 函數將這些值設置為 JSON 對象的屬性。最后,我們使用 json_array_append 函數將 JSON 對象添加到 JSON 數組中。最終,我們將整個 JSON 數組轉換為字符串,并使用 json_dumps 函數進行縮進和格式化。
請注意,我們還需調用 json_decref 函數釋放內存。這是因為 JSON 庫使用一種引用計數技術來管理對象。
上一篇python 簡單打包
下一篇python 泰森多邊形