2017-02-18 158 views
1

我試圖返回一個JObject作爲我的行動結果。我使用Newtonsoft.JsonJsonNetResult將對象轉換爲JsonResult。 對於正常對象,我使用該語法用於序列化對象轉換成JsonResult:ASP.NET MVC:返回JObject作爲JsonResult

return new JsonResult 
{ 
    ContentType = "application/json", 
    ContentEncoding = System.Text.Encoding.UTF8, 
    Data = myResult, 
    JsonRequestBehavior = JsonRequestBehavior.AllowGet 
}; 

myResult是所期望的對象的實例,但是試圖這對於JObject(Newtonsoft.Json.Linq.JObject)如下,返回無效結果即[[[]]]

JObject jsonObject = new JObject(); 
jsonObject["error"] = "invalid_id"; 
return new JsonResult 
{ 
    ContentType = "application/json", 
    ContentEncoding = System.Text.Encoding.UTF8, 
    Data = jsonObject, 
    JsonRequestBehavior = JsonRequestBehavior.AllowGet 
}; 

如何在這種情況下序列化JObject?

+0

你想從一個動作返回一個json對象,對嗎? –

+0

@TânNguyễn是的,我的行動將返回JsonResult作爲返回類型 – VSB

回答

0

你可以試試:

public JsonObject GetJson_1() 
    { 
     var errors = new Dictionary<string, string>(); 
     errors.Add("Id", "invalid"); 

     return new JsonObject(errors); 
    } 

    public ActionResult GetJson_2() 
    { 
     var errors = new List<object>(); 

     errors.Add(new { Id = "invalid" }); 

     return Json(errors, JsonRequestBehavior.AllowGet); 
    } 

希望這有助於!