Json 是一種常用的數據格式,可以在不同平臺和語言之間進行數據交換。而在 C 語言中,要生成 Json 數據,則可以使用遞歸的方式。本文將介紹 C 語言中遞歸生成 Json 數據的方法。
// 包含 Json 頭文件 #include "json/json.h" // 定義遞歸生成 Json 數據的函數 void generateJson(Json::Value& value) { // 如果當前節點是 object 類型 if (value.isObject()) { // 添加屬性 value["name"] = "張三"; value["age"] = 18; // 添加子節點 Json::Value array; array.append("語文"); array.append("數學"); array.append("英語"); value["courses"] = array; // 遞歸生成子節點的 Json 數據 generateJson(array[0]); generateJson(array[1]); generateJson(array[2]); } // 如果當前節點是 array 類型 else if (value.isArray()) { // 添加子節點 Json::Value obj1; obj1["name"] = "張三"; obj1["age"] = 18; value.append(obj1); Json::Value obj2; obj2["name"] = "李四"; obj2["age"] = 20; value.append(obj2); // 遞歸生成子節點的 Json 數據 generateJson(value[0]); generateJson(value[1]); } }
在上面的代碼中,我們使用了 JsonCpp 庫(可以通過包管理器進行安裝),同時定義了一個遞歸生成 Json 數據的函數 generateJson。在函數中,我們判斷當前節點的類型,如果是 object 類型,則添加屬性和子節點,同時遞歸生成子節點的 Json 數據;如果是 array 類型,則添加子節點,同時遞歸生成子節點的 Json 數據。
最后,我們可以調用 generateJson 函數來生成 Json 數據:
Json::Value root; generateJson(root); std::string jsonStr = root.toStyledString(); std::cout<< jsonStr<< std::endl;
在上面的代碼中,我們首先定義了一個 Json::Value 類型的變量 root,然后調用 generateJson 函數生成 Json 數據,最后將生成的 Json 數據轉化為字符串進行輸出。
通過遞歸生成 Json 數據的方法,我們可以方便地在 C 語言中處理 Json 數據。
上一篇vue css固定頂部