C語言中的struct(結構體)是一種非常重要的數據類型,用于存儲多個不同數據類型的變量。在處理數據時,轉化struct為json是一種常見的方法。下面我們來看看如何進行。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <json-c/json.h> typedef struct { char *name; int age; } Person; int main() { Person personList[2] = {{"Lily", 20}, {"Tom", 22}}; json_object *personArray = json_object_new_array(); for(int i = 0; i < 2; i++) { json_object *personObj = json_object_new_object(); json_object_object_add(personObj, "name", json_object_new_string(personList[i].name)); json_object_object_add(personObj, "age", json_object_new_int(personList[i].age)); json_object_array_add(personArray, personObj); } printf("%s\n", json_object_to_json_string(personArray)); return 0; }
在這個例子中,我們定義了一個Person的結構體,并創建了一個Person類型數組。然后,我們使用json-c庫,將Person數組轉化為json數組。
在代碼中,我們先創建了一個空的json數組,然后遍歷Person數組,并將每個結構體實例轉化為json對象。我們使用json_object_new_object函數創建了一個新的json對象,并使用json_object_object_add函數向對象中添加屬性(name和age)。其中,json_object_new_string函數將字符串轉化為json的string類型,json_object_new_int函數將整數轉化為json的int類型。
最后,我們將每個json對象添加到json數組中,使用json_object_array_add函數。最后,將整個json數組轉化為字符串,使用json_object_to_json_string函數。
通過這種方式,我們可以很方便地將C語言中的結構體轉化為json格式,方便進行進一步的數據處理。