[英]c# MVC 4 Web API - Return object from JSON string
我正在使用MVC 4 Web API来构建将始终返回JSON的服务层。
我的api方法调用实际上调用了另一个服务,该服务返回JSON对象。 然后,我只想将此JSON对象传递回我的返回对象,但是我不确定要使用哪种返回类型。
如果我使用字符串,它将JSON对象包装在引号中。
顺便说一句,我已经将默认的MediaTypeFormatter更改为JSON。
这是JSON对象的示例:
{
"responseHeader":{
"status":0,
"QTime":0,
"params":{
"indent":"on",
"q":"id:100001",
"wt":"json"}},
"response":{"numFound":1,"start":0,"docs":[
{
"Header":"Test Header",
"MaxPrice":515.0,
"ApartmentName":"Apartment 1",
"MaxBathrooms":4.0,
"Pool":true,
"MinBathrooms":2.0,
"MaxBedrooms":4,
"CoveredParking":false}]
}}
在Beta版本中,可以使用JsonValue
(来自System.Json命名空间)。 如果对其他服务的调用返回了包含JSON数据的字符串,则可以调用JsonValue.Parse
将其加载到对象中以返回。
在RC版本中(或在http://aspnetwebstack.codeplex.com中的当前位中),您可以使用JToken
对象(来自Newtonsoft.Json.Linq命名空间)-默认的JSON序列化程序和JSON DOM现在来自。 JSON.NET库。
要从MVC返回Json,请使用JsonResult。 您可以首先使用DataContractJsonSerializer将字符串转换为对象。
http://shashankshetty.wordpress.com/2009/03/04/using-jsonresult-with-jquery-in-aspnet-mvc/
因此,问题出在我先获取一个序列化的json对象,然后在覆盖默认XML MediaTypeFormatter的JavaScriptSerializerFormatter中重新序列化。
我通过返回JsonValue然后检查类型而不重新序列化来解决此问题。
感谢carlosfigueira对找到此内容的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.