使用C#返回JSON,如PHP json_encode
在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(); //populate the list return Json(myList); }
- URL.Action与字符串数组?
- 在MVC3中,是否可以在不同的区域中使用相同的控制器名称?
- 在ASP.NET MVC应用程序中锁定一个全局对象时是否可能出现死锁?
- GetOriginalTypeParameterType throws未将对象引用设置为对象exception的实例
- Ajax.BeginForm beforeSubmit事件
- asp.net MVC 3中的ViewData和PageData有什么区别?
- RedirectToAction到不同的控制器而不更改URL
- 无法使用vb.net加载asp.net mvc 3中的区域视图
- 什么相当于LINQ之间的比较字符串或lambda表达式之间的子句?