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

c 對象轉為json字符串數組

錢淋西2年前8瀏覽0評論

在 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 庫使用一種引用計數技術來管理對象。