#include #include using json = nlohmann::json; namespace ns { enum class Color { red, green, blue, unknown }; NLOHMANN_JSON_SERIALIZE_ENUM(Color, { { Color::unknown, "unknown" }, { Color::red, "red" }, { Color::green, "green" }, { Color::blue, "blue" }, { Color::red, "rot" } // a second conversion for Color::red }) } int main() { // serialization json j_red = ns::Color::red; std::cout << static_cast(ns::Color::red) << " -> " << j_red << std::endl; // deserialization json j_rot = "rot"; auto rot = j_rot.get(); auto red = j_red.get(); std::cout << j_rot << " -> " << static_cast(rot) << std::endl; std::cout << j_red << " -> " << static_cast(red) << std::endl; }