[英]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.