Skip to content

Instantly share code, notes, and snippets.

@GeoffCox
Last active August 29, 2015 14:17
Show Gist options
  • Save GeoffCox/586f378958d524b6b85f to your computer and use it in GitHub Desktop.
Save GeoffCox/586f378958d524b6b85f to your computer and use it in GitHub Desktop.
Overlay values over default values in a JSON object
private static object ApplyDefaultData(object data, object defaultData)
{
if (defaultData != null)
{
var target = new ExpandoObject();
// I apply the default values
string defaultJson = JsonConvert.SerializeObject(defaultData, _jsonSerializerSettings);
JsonConvert.PopulateObject(defaultJson, target, _jsonSerializerSettings);
if (data != null)
{
// Then I allow any data to override the defaults
string valueJson = JsonConvert.SerializeObject(data, _jsonSerializerSettings);
JsonConvert.PopulateObject(valueJson, target, _jsonSerializerSettings);
}
return target;
}
else
{
return data;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment