Как десериализовать класс, у которого в качестве первого параметра конструктора имеется объект nlohmann::json? ⇐ C++
Как десериализовать класс, у которого в качестве первого параметра конструктора имеется объект nlohmann::json?
У меня есть класс, который ожидает объект nlohmann::json в качестве первого параметра конструктора. Я реализовал to_json и from_json для своего класса, но from_json не вызывается (если я не вызываю его явно) и десериализация по умолчанию просто помещает весь объект в параметр json. Вот пример кода.
#include #include "nlohmann/json.hpp" используя json = nlohmann::json; класс ПримерКласс { публика: ПримерКласс(данные json = json::object(), std::string some_string = "") : m_Data(data), m_String(some_string) {} ~ПримерКласс() {} json m_Data; станд::строка m_String; }; void to_json(json& j, const Примеркласса& пример) { j = json{ {"Данные", example.m_Data}, {"String", example.m_String} }; } void from_json(const json& j, Примеркласса& пример) { j.at("Данные").get_to(example.m_Data); j.at("String").get_to(example.m_String); } интервал основной() { Пример класса example(json{ {"ключ", "значение"} }, "вот строка"); std::cout
У меня есть класс, который ожидает объект nlohmann::json в качестве первого параметра конструктора. Я реализовал to_json и from_json для своего класса, но from_json не вызывается (если я не вызываю его явно) и десериализация по умолчанию просто помещает весь объект в параметр json. Вот пример кода.
#include #include "nlohmann/json.hpp" используя json = nlohmann::json; класс ПримерКласс { публика: ПримерКласс(данные json = json::object(), std::string some_string = "") : m_Data(data), m_String(some_string) {} ~ПримерКласс() {} json m_Data; станд::строка m_String; }; void to_json(json& j, const Примеркласса& пример) { j = json{ {"Данные", example.m_Data}, {"String", example.m_String} }; } void from_json(const json& j, Примеркласса& пример) { j.at("Данные").get_to(example.m_Data); j.at("String").get_to(example.m_String); } интервал основной() { Пример класса example(json{ {"ключ", "значение"} }, "вот строка"); std::cout
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Nlohmann json считывает некоторые символы из таблицы ASCII как пустые из файла json.
Anonymous » » в форуме C++ - 0 Ответы
- 40 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Nlohmann json считывает некоторые символы из таблицы ASCII как пустые из файла json.
Anonymous » » в форуме C++ - 0 Ответы
- 52 Просмотры
-
Последнее сообщение Anonymous
-