C JSON 轉(zhuǎn)類是一種將 JavaScript 對(duì)象表示法(JSON)格式數(shù)據(jù)轉(zhuǎn)換為 C++ 類的過程。它可以讓開發(fā)人員更方便地處理來自服務(wù)器或其他來源的 JSON 數(shù)據(jù)。以下是 C JSON 轉(zhuǎn)類的示例代碼:
#include <iostream> #include <nlohmann/json.hpp> using json = nlohmann::json; // 定義一個(gè) JSON 數(shù)據(jù)類型的類 class JsonData { public: int id; std::string name; bool isActive; void loadFromJson(const json& j) { j.at("id").get_to(id); j.at("name").get_to(name); j.at("isActive").get_to(isActive); } json toJson() const { return { {"id", id}, {"name", name}, {"isActive", isActive} }; } }; int main() { std::string jsonString = "{\"id\": 1, \"name\": \"John Doe\", \"isActive\": true}"; auto j = json::parse(jsonString); JsonData jsonData; jsonData.loadFromJson(j); std::cout<< "id: "<< jsonData.id<< std::endl; std::cout<< "name: "<< jsonData.name<< std::endl; std::cout<< "isActive: "<< std::boolalpha<< jsonData.isActive<< std::endl; json convertedJson = jsonData.toJson(); std::string convertedString = convertedJson.dump(); std::cout<< "Converted JSON: "<< convertedString<< std::endl; return 0; }
在上述代碼中,我們定義了一個(gè)名為 JsonData 的類,它有三個(gè)成員變量:id、name 和 isActive。我們還定義了兩個(gè)方法:loadFromJson 和 toJson。loadFromJson 方法將傳入的 JSON 對(duì)象轉(zhuǎn)換為相應(yīng)的類成員變量,而 toJson 方法將類轉(zhuǎn)換為 JSON 對(duì)象。
在 main 函數(shù)中,我們首先定義了一個(gè) JSON 字符串,并使用 json::parse 方法將其轉(zhuǎn)換為 nlohmann::json 類型的對(duì)象 j。我們?nèi)缓髣?chuàng)建了一個(gè) JsonData 類型的對(duì)象 jsonData,并使用 loadFromJson 方法將 j 對(duì)象的值賦給其成員變量。最后,我們使用 toJson 方法將 jsonData 對(duì)象轉(zhuǎn)換為 JSON 對(duì)象,并輸出了轉(zhuǎn)換后的 JSON 字符串。