refs #679 Missing values in json should not cause members of default-constructed object to be overwritten.

This commit is contained in:
Mathew Sutcliffe
2016-06-29 17:32:42 +01:00
parent 903abcf514
commit 37b8436ebb

View File

@@ -303,7 +303,10 @@ namespace BlackMisc
{
baseConvertFromJson(static_cast<BaseOfT<Derived> *>(derived()), json);
auto meta = introspect<Derived>().without(MetaFlags<DisabledForJson>());
meta.forEachMemberName(*derived(), [ & ](auto & member, const QString & name) { json.value(name) >> member; });
meta.forEachMemberName(*derived(), [ & ](auto & member, const QString & name)
{
if (json.contains(name)) { json.value(name) >> member; }
});
}
//! Assign from JSON object string