如果我有一个简单的类:
public class UserId
{
public string Id { get; set; }
}
然后我将其传递给httprequest.createresponse()输出为:
{ "id": "1234bcf6678" }
但是,如果我使用jsonserializer,我会得到:
"{ "id": "1234bcf6678" }"
我知道第二个是一个有效的json字符串,但是我如何使用jsonserializer并将结果从中传递给httprequest.createresponse()以获取第一个输出(即没有逃脱的报价)的方式?
我知道有一个相关的问题,但是我想使用newtonsoft Serialializer,因为它允许我正确处理序列化某些通用列表和派生对象。
对于额外的上下文,可能值得知道我在Azure功能中进行此操作。我看到Web API具有System.Web.Http.GlobalConfiguration
可用,但不确定功能可以。
使用jsonserialializer并返回结果字符串时,它被序列化为JSON 再次。您必须绕过HttpRequest.CreateResponse()
扩展方法,并手动创建响应 - 这样,您可以自己设置内容和内容类型。一个有用的起点是查看CreateResponse
的源代码(围绕332行)。您将使用StringContent
,而不是使用ObjectContent<T>
,并使用媒体类型的"应用程序/JSON"。