Util: Add fromJson() functions for Object Value types
This commit is contained in:
@@ -80,6 +80,26 @@ void fromJson(const Json& json, std::vector<T>& array)
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename Json, typename T>
|
||||||
|
void fromJson(const Json& json, std::map<std::string, T>& object)
|
||||||
|
{
|
||||||
|
assert(json.type() == Json::Type::Object);
|
||||||
|
object.clear();
|
||||||
|
for (const auto& [name, value] : json.asObject().members()) {
|
||||||
|
object.emplace(name, value.template get<T>());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename Json, typename T>
|
||||||
|
void fromJson(const Json& json, std::unordered_map<std::string, T>& object)
|
||||||
|
{
|
||||||
|
assert(json.type() == Json::Type::Object);
|
||||||
|
object.clear();
|
||||||
|
for (const auto& [name, value] : json.asObject().members()) {
|
||||||
|
object.emplace(name, value.template get<T>());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct fromJsonFunction {
|
struct fromJsonFunction {
|
||||||
template<typename Json, typename T>
|
template<typename Json, typename T>
|
||||||
auto operator()(const Json& json, T&& value) const
|
auto operator()(const Json& json, T&& value) const
|
||||||
|
|||||||
Reference in New Issue
Block a user