I have a json string returned from an api endpoint and am trying to deserialize it to a c# class. The deserialization process is erroring out.
incoming json string:
{"amount":"3.00","resptext":"Approval","cvvresp":"P","respcode":"000","avsresp":"","merchid":"800000000800","token":"9478837814450119","authcode":"PPS306","respproc":"RPCT","emvTagData":"{\"TVR\":\"0200008000\",\"PIN\":\"None\",\"Signature\":\"true\",\"Mode\":\"Issuer\",\"ARC\":\"Z3\",\"TSI\":\"E800\",\"Application Preferred Name\":\"CREDITO DE VISA\",\"AID\":\"A0000000031010\",\"IAD\":\"06010A03A00000\",\"Entry method\":\"Chip Read\",\"Application Label\":\"VISA CREDIT\"}","retref":"116390139157","respstat":"A","account":"47XXXXXXXXXX0119"}
c# class:
public class AuthCardResponse
{
public string token { get; set; }
public string expiry { get; set; }
public string name { get; set; }
public string batchid { get; set; }
public string retref { get; set; }
public string avsresp { get; set; }
public string respproc { get; set; }
public string amount { get; set; }
public string resptext { get; set; }
public string authcode { get; set; }
public string respcode { get; set; }
public string merchid { get; set; }
public string cvvresp { get; set; }
public string respstat { get; set; }
public string account { get; set; }
public string bintype { get; set; }
public string entrymode{get;set;}
public string commcard { get; set; }
//public string emvTagData { get; set; }
public EmvTagData emvTagData { get; set; }
}
public class EmvTagData
{
public string TVR { get; set; }
public string PIN { get; set; }
public string Signature { get; set; }
public string Mode { get; set; }
public string TSI { get; set; }
public string AID { get; set; }
public string ARC { get; set; }
public string IAD { get; set; }
[JsonProperty("Entry method")]
public string Entrymethod { get; set; }
[JsonProperty("Application Label")]
public string ApplicationLabel { get; set; }
[JsonProperty("Application Preferred Name")]
public string ApplicationPreferredName { get; set; }
}
}
code to deserialize:
AuthCardResponse _authCardResponse = JsonConvert.DeserializeObject<AuthCardResponse>(authResultJson );
Error:
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value)
I can't figure out what the error is. I have tried online json parsers and they have been able to parse the string without any issues.
Any help is appreciated.
Thanks NH
