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;