我有一个模型"data“,其中包含一些布尔值和字符串。我希望这个模型返回一个HttpResponseMessage。目前我是这样做的:
string JSON = JsonConvert.SerializeObject(Data);
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, JSON);
return response;这将产生以下JSON输出"{\"\"}"。但我需要的是{""}。但是,如果我只在HttpResponseMessage之前显示JSON,就像{""}一样,我似乎找不到是什么原因导致输出格式发生变化。有人知道这是什么原因以及如何解决这个问题吗?在我看来,JSON被“串行化”了,但我不知道为什么。
我正在使用NewtonSoft。
发布于 2018-11-17 05:55:28
之所以会发生这种情况,是因为Web API框架具有内置的序列化,而您是在此基础上手动序列化数据的。这种双序列化会产生您在响应JSON中看到的额外的反斜杠和引号。
要修复代码,请删除对SerializeObject的调用,并将Data对象直接传递给Request.CreateResponse,如下所示:
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, Data);
return response;https://stackoverflow.com/questions/53337499
复制相似问题