ASP.NET MVC:将JObject作为JsonResult返回

时间:2017-02-18 12:57:56

标签: c# asp.net-mvc json.net

我正在尝试返回一个JObject,因为我的动作结果。我使用Newtonsoft.JsonJsonNetResult将对象转换为JsonResult。 对于普通对象,我使用此语法将对象序列化为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?

1 个答案:

答案 0 :(得分: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);
    }

希望这有帮助!