Я пытаюсь десериализация некоторых простых JSON в ниже объектыисключения при десериализации объекта JSON
public class Car
{
public int car_id { get; set; }
public string name { get; set; }
}
public class RootObject
{
public List<Car> cars { get; set; }
}
Это вызов я делаю
using (var client = new HttpClient(handler))
{
client.BaseAddress = new Uri("http://localhost/WebApiServer/Reference/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = client.GetAsync("cars").Result;
if (response.IsSuccessStatusCode)
{
HttpContent httpContent = response.Content;
string responseString = httpContent.ReadAsStringAsync().Result;
//error happens here
var deserializeObject = JsonConvert.DeserializeObject<RootObject>(responseString);
}
этого значение строки ответа от отладчика в VS
"\"{ \\\"cars\\\": [{\\\"car_id\\\":46,\\\"name\\\":\\\"Ford-Fiesta\\\"]}}\""
и это исключение
// исключение
Error converting value "{ "cars": [{"car_id":46,"name":"Ford-Fiesta"]}}" to type 'WebApiJson.Program+RootObject'. Path '', line 1, position 62.
это JSON - я читаю из файла
{ "cars": [{"car_id":46,"name":"Ford-Fiesta"}]}
Я иссякли идеи
EDIT:
Я просто исп.
string serializeObject = JsonConvert.SerializeObject(text);
var deserializeObject = JsonConvert.DeserializeObject<RootObject>(serializeObject);
и дает мне ту же самую проблему
EDIT 2 мой контроллер возвращая JSon
public string Cars()
{
string text = System.IO.File.ReadAllText("json.txt");
string serializeObject = JsonConvert.SerializeObject(text);
Debug.WriteLine(serializeObject);
// this fails
var deserializeObject = JsonConvert.DeserializeObject<RootObject>(serializeObject);
return JsonConvert.SerializeObject(text);
}
Можете ли вы отправить JSON без экранирующих символов ?? –
Этот JSON хорош: '{" cars ": [{" car_id ": 46," name ":" Ford-Fiesta "}]}'. Но JSON, фактически показанный в тексте исключения, нарушен: '{" cars ": [{" car_id ": 46," name ":" Ford-Fiesta "]}}'. Проблема в том, что последние три символа: ']}}', но должны быть '}]}'. – dbc
да, я изменил это, но все равно делаю это – kurasa