I am getting this exception:
Newtonsoft.Json.JsonReaderException HResult=0x80131500 Message=Unexpected character encountered while parsing value: {. Path 'outputObject.address', line 17, position 16.
when deserializing the response data from an API. (complete exception on the end of the post)
CODE
return JsonConvert.DeserializeObject(webResponseEntity.ResponseData, typeof(CarLookupResponse)) as CarLookupResponse;
MODEL
   public class CarLookupResponse : ICarLookupResponse
    {
        public ICarLookupResult Result { get; set; }
        public ICarLookupOutputObject OutputObject { get; set; }
        public CarLookupResponse()
        {
            Result = new CarLookupResult();
            OutputObject = new CarLookupOutputObject();
        }
    }
Folowing is the output object interface OutputObject Interface
public interface ICarLookupOutputObject 
    {
        int  CarId { get; set; }
        string CartestId { get; set; }
        int[] ModelYears { get; set; }
        string FirstName { get; set; }
        string LastName { get; set; }
        string Email { get; set; }
        string SSN { get; set; }
        string Address { get; set; }
    }
JSON
   {
     "result": {
        "id": 1,
        "value": "lookup successful.",
        "error": null
      },
      "outputObject": {
        "CarId": 2025,
        "CartestId": "testing-02",
        "ModelYears": [
          2017,
          2018
        ],
        "firstName": "Troy",
        "lastName": "Aaster",
        "email": "[email protected]",
        "address": {
          "apartment": "",
          "state": "CA",
          "city": "BRISBANE",
          "zipCode": "94005",
          "streetAddress": "785, SPITZ BLVD"
        },
        "ssn": "511-04-6666"
      }
    }
I tried to find the reason for this exception but couldn't get it, JSON is valid, I have checked that.
Following is the full exception deatials
Newtonsoft.Json.JsonReaderException HResult=0x80131500 Message=Unexpected character encountered while parsing value: {. Path 'outputObject.address', line 17, position 16. Source=Newtonsoft.Json StackTrace: at Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType) at Newtonsoft.Json.JsonTextReader.ReadAsString() at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter) 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.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.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)
outputObject.addressis bound is a string, not a complex object? - dbcCarLookupOutputObjectI cannot say for sure, but since the exception is getting thrown fromNewtonsoft.Json.JsonTextReader.ReadAsString()it's likely thatCarLookupOutputObject.Addressis a string not an object, which would account for the exception. - dbc{ "CarId": 2025 }cannot be deserialized into a primitive string. See newtonsoft.com/json/help/html/serializationguide.htm#Objects - dbc