public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var result = new ErrorResponse(); while (reader.Read()) { if (reader.TokenType == JsonToken.PropertyName && reader.Value.ToString().Equals("error") && reader.Read()) { result.Add(serializer.Deserialize <ErrorMessage>(reader)); } } return(result); }
protected override IHueResponse Deserialize(string json) { var successMessage = JsonConvert.DeserializeObject <SuccessResponse>(json, new SuccessResponseConverter(Address)); if (successMessage.Any(p => p.Key == "name" && p.Value.ToString().Equals(NewName))) { return(successMessage); } var error = new ErrorResponse(); error.Add(new ErrorMessage { Address = Address, Description = "No error returned, but desired name isn't set either.", Type = ErrorCode.InternalError }); return(error); }