使用C#返回JSON,类似于PHP JSON_encode

本文关键字:JSON PHP encode 类似于 返回 使用 | 更新日期: 2023-09-27 18:21:24

在PHP中,要返回一些JSON,我会执行以下操作:

return json_encode(array('param1'=>'data1','param2'=>'data2'));

如何以最简单的方式在C#ASP.NET MVC3中执行等效操作?

使用C#返回JSON,类似于PHP JSON_encode

您可以使用框架内置的JavaScriptSerializer类。例如:

var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(new { param1 = "data1", param2 = "data2" });

收益率:

{"param1":"data1","param2":"data2"}

但是,由于您谈到了在ASP.NET MVC 3中返回JSON,因此已经有了内置的技术,允许您直接返回对象,并让底层基础设施负责将此对象序列化为JSON,以避免此类管道污染您的代码。

例如,在ASP.NET MVC 3中,您只需编写一个返回JsonResult:的控制器操作

public ActionResult Foo()
{
    // it's an anonymous object but you could have used just any
    // view model as you like
    var model = new { param1 = "data1", param2 = "data2" };
    return Json(model, JsonRequestBehavior.AllowGet);
}

你再也不用担心水管了。在ASP.NET MVC中,有返回操作结果的控制器操作,并将视图模型传递给这些操作结果。在JsonResult的情况下,底层基础设施将负责序列化传递给JSON字符串的视图模型,此外,还将Content-Type响应标头正确设置为application/json

我总是使用JSON.Net:http://json.codeplex.com/以及文件:http://james.newtonking.com/projects/json/help/

http://www.json.org/(参见C#列表)?

最简单的方法可能是这样的:

public JsonResult GetData()
{      
    var myList = new List<MyType>();
    //populate the list
    return Json(myList);
}