使用类似于PHP JSON_编码的C#返回JSON

使用类似于PHP JSON_编码的C#返回JSON,c#,php,json,asp.net-mvc-3,C#,Php,Json,Asp.net Mvc 3,在PHP中,要返回一些JSON,我将执行以下操作: 返回json_编码(数组('param1'=>'data1','param2'=>'data2') 如何以最简单的方式在C#ASP.NET MVC3中实现等效功能?您可以使用框架中内置的类。例如: var serializer = new JavaScriptSerializer(); string json = serializer.Serialize(new { param1 = "data1", param2 = "data2" });

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

返回json_编码(数组('param1'=>'data1','param2'=>'data2')

如何以最简单的方式在C#ASP.NET MVC3中实现等效功能?

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

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字符串的视图模型,除此之外,还将
内容类型
响应头正确设置为
应用程序/JSON
怎么样(请参见C#list)?

我总是使用JSON.Net:
文档:

最简单的方式可能是:

public JsonResult GetData()
{      
    var myList = new List<MyType>();

    //populate the list

    return Json(myList);
}
public JsonResult GetData()
{      
var myList=新列表();
//填充列表
返回Json(myList);
}

请注意,IE在缓存GET请求方面非常激进。通常需要
[OutputCache]
属性。