diff --git a/src/p18/response.h b/src/p18/response.h index f9585d3..9dfebb1 100644 --- a/src/p18/response.h +++ b/src/p18/response.h @@ -82,9 +82,29 @@ public: inline json toJSON() const { json j; - std::visit([&j](const auto& elem) { - j = elem; + bool isEnum = + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_); + + std::visit([&j, &isEnum](const auto& elem) { + if (isEnum) + j = formatter::to_str(elem); + else + j = elem; }, v_); + return j; } };