HttpResponseMessage JSON

У меня есть модель "данные", которая содержит некоторые логические значения и строки. Я хочу, чтобы эта модель возвращалась с HttpResponseMessage. В настоящее время я делаю это так:

string JSON = JsonConvert.SerializeObject(Data);
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, JSON);
return response;

Это приводит к следующему выводу JSON "{\"\"}", Но мне нужно, чтобы это было {""}, Тем не менее, если я покажу только JSON до HttpResponseMessage это как {""} и я, кажется, не выяснил, что вызывает изменение формата вывода. Кто-нибудь знает, что вызывает это и как это решить? Мне кажется, что JSON становится "stringitized", но почему я не знаю.

Я использую NewtonSoft.

1 ответ

Это происходит потому, что платформа Web API имеет встроенную сериализацию, и вы вручную сериализуете свои данные поверх этого. Эта двойная сериализация приводит к дополнительным обратным слешам и кавычкам, которые вы видите в ответе JSON.

Чтобы исправить свой код, удалите вызов SerializeObject и передать Data возражать непосредственно Request.CreateResponse как это:

HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, Data);
return response;
Другие вопросы по тегам