2017-02-18 18 views
1

Я пытаюсь вернуть объект JObject в качестве моих действий. Я использовал Newtonsoft.Json и JsonNetResult для преобразования объектов в JsonResult. Для обычных объектов, я использую этот синтаксис для сериализации объектов в JsonResult:ASP.NET MVC: return JObject as 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); 
    } 

Надеется, что это помогает!

Смежные вопросы