0

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

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

这会产生以下 JSON 输出"{\"\"}"。但我需要它{""}HttpResponseMessage然而,如果我只在它之前显示 JSON {""},我似乎不知道是什么原因导致输出格式发生变化。有谁知道这是什么原因以及如何解决这个问题?在我看来,JSON 被“字符串化”了,但为什么我不知道。

我正在使用 NewtonSoft。

4

1 回答 1

0

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

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

HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, Data);
return response;
于 2018-11-16T21:55:27.927 回答