HttpResponseMessage JSON

时间:2018-11-16 12:01:11

标签: c# json.net httpresponsemessage

我有一个“数据”模型,其中包含一些布尔值和字符串。我希望此模型返回HttpResponseMessage。目前,我正在这样做:

def self.john_or_smith
  where(name: "John").or(where(lastname: "Smith"))
end

这将导致以下JSON输出If。但是我需要它是string JSON = JsonConvert.SerializeObject(Data); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, JSON); return response; 。 但是,如果我仅在"{\"\"}"之前显示JSON,就好像{""}一样,而且我似乎不知道是什么导致输出格式更改。有谁知道这是什么原因以及如何解决? 在我看来,JSON已“字符串化”,但为什么我不知道。

我正在使用NewtonSoft。

1 个答案:

答案 0 :(得分:0)

之所以会发生这种情况,是因为Web API框架具有内置的序列化功能,并且您正在此基础上手动序列化数据。这种双重序列化会导致您在响应JSON中看到多余的反斜杠和引号。

要修复代码,请删除对SerializeObject的调用,然后将Data对象直接传递给Request.CreateResponse,如下所示:

HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, Data);
return response;