使用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中执行等效操作?
您可以使用框架内置的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);
}