在C語言中,我們經常需要將數據轉換成JSON字符串數組來進行數據的傳輸和存儲。這里介紹一種將C list轉換成JSON字符串數組的方法。
#include#include #include #include typedef struct item { char *name; int id; int price; } ITEM; int main() { ITEM items[] = { {"apple", 1, 2}, {"banana", 2, 3}, {"orange", 3, 4} }; int itemCount = 3; json_t *root = json_array(); for (int i = 0; i< itemCount; i++) { json_t *itemObj = json_object(); json_object_set_new(itemObj, "name", json_string(items[i].name)); json_object_set_new(itemObj, "id", json_integer(items[i].id)); json_object_set_new(itemObj, "price", json_integer(items[i].price)); json_array_append_new(root, itemObj); } char *jsonData = json_dumps(root, JSON_INDENT(2)); printf("JSON data:\n%s\n", jsonData); free(jsonData); json_decref(root); return 0; }
在這個例子中,我們定義了一個ITEM結構體,里面包含商品的名稱、ID和價格。我們將這些商品放在一個包含3個ITEM的數組items中。
然后,我們使用jansson庫來生成JSON對象。我們首先創(chuàng)建一個JSON數組對象root,然后用for循環(huán)遍歷數組items中每一個元素,將它們轉化成JSON對象。在轉化過程中,我們使用json_object_set_new函數為每個JSON對象設置名稱、ID和價格屬性。
最后,我們將每個JSON對象添加到數組root中,并使用json_dumps函數將這個JSON數組對象轉化成字符串格式。我們可以看到字符串中每個JSON對象都用大括號包含,并且每個屬性都使用雙引號括起來。
這個方法可以輕松地將C list轉化成JSON字符串數組。我們可以使用這個方法來進行數據的傳輸和存儲,方便實用。