Good Evening
I am getting an error in the below source code.
Could you please help me with this.
Error details
Newtonsoft.Json.JsonSerializationException: 'Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'LSI.Web.Models.ResponseDto' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path '', line 1, position 1.'
Error Line
var apiRespnseDto = JsonConvert.DeserializeObject<T>(apiContent); // Error Line
Code details are below
public async Task<T> SendAsync<T>(ApiRequest apiRequest)
var client = httpClient.CreateClient("LSIAPI");
HttpRequestMessage message = new HttpRequestMessage();
message.Headers.Add("Accept", "application/json");
message.RequestUri = new Uri(apiRequest.Url);
client.DefaultRequestHeaders.Clear();
if (apiRequest.Data != null)
message.Content = new StringContent(JsonConvert.SerializeObject(apiRequest.Data),
Encoding.UTF8, "application/json");
HttpResponseMessage apiResponse = null;
switch (apiRequest.ApiType)
case SD.ApiType.POST:
message.Method = HttpMethod.Post;
break;
case SD.ApiType.PUT:
message.Method = HttpMethod.Put;
break;
case SD.ApiType.DELETE:
message.Method = HttpMethod.Delete;
break;
default:
message.Method = HttpMethod.Get;
break;
apiResponse = await client.SendAsync(message);
var apiContent = await apiResponse.Content.ReadAsStringAsync();
var apiRespnseDto = JsonConvert.DeserializeObject<T>(apiContent);
return apiRespnseDto;
catch (Exception ex)
var dto = new ResponseDto
Displaymessage = "Error",
ErrorMessages = new List<string> { Convert.ToString(ex.Message) },
IsSuccess = false
var res = JsonConvert.SerializeObject(dto);
var apiResponseDto = JsonConvert.DeserializeObject<T>(res);
return apiResponseDto.ToString();
Thanks In Advance
Rajesh Somvanshi
@AgaveJoe is right, based on image posted you have a Json Array.
You have to Deserialize into an Array or List.
Excetion message is telling you what should be done
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.