Skip to content

Commit

Permalink
Fix ConsulRequest json deserialization when propertyName is null
Browse files Browse the repository at this point in the history
  • Loading branch information
banshooter authored and highlyunavailable committed Feb 22, 2018
1 parent 934ba07 commit 290e4cf
Showing 1 changed file with 21 additions and 19 deletions.
40 changes: 21 additions & 19 deletions Consul/Utilities/JsonConverters.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,31 +91,33 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
{
string jsonPropName = reader.Value.ToString();
var propName = objProps.Value.FirstOrDefault(p => p.Equals(jsonPropName, StringComparison.OrdinalIgnoreCase));

PropertyInfo pi = result.GetType().GetRuntimeProperty(propName);

if (jsonPropName.Equals("Flags", StringComparison.OrdinalIgnoreCase))
if (propName != null)
{
if (!string.IsNullOrEmpty(reader.ReadAsString()))
PropertyInfo pi = result.GetType().GetRuntimeProperty(propName);

if (jsonPropName.Equals("Flags", StringComparison.OrdinalIgnoreCase))
{
var val = Convert.ToUInt64(reader.Value);
pi.SetValue(result, val, null);
if (!string.IsNullOrEmpty(reader.ReadAsString()))
{
var val = Convert.ToUInt64(reader.Value);
pi.SetValue(result, val, null);
}
}
}
else if (jsonPropName.Equals("Value", StringComparison.OrdinalIgnoreCase))
{
if (!string.IsNullOrEmpty(reader.ReadAsString()))
else if (jsonPropName.Equals("Value", StringComparison.OrdinalIgnoreCase))
{
var val = Convert.FromBase64String(reader.Value.ToString());
pi.SetValue(result, val, null);
if (!string.IsNullOrEmpty(reader.ReadAsString()))
{
var val = Convert.FromBase64String(reader.Value.ToString());
pi.SetValue(result, val, null);
}
}
}
else
{
if (reader.Read())
else
{
var convertedValue = Convert.ChangeType(reader.Value, pi.PropertyType);
pi.SetValue(result, convertedValue, null);
if (reader.Read())
{
var convertedValue = Convert.ChangeType(reader.Value, pi.PropertyType);
pi.SetValue(result, convertedValue, null);
}
}
}
}
Expand Down

0 comments on commit 290e4cf

Please sign in to comment.