前端接收后端传过来的JSON对象,对前端来说,传过来的确实就是JSON对象;但后端,类型则灵活得多,可以是IList<>等类型,当然也可以是newtonsoft的JObject类型。反正在后端,传达的参数类型很多,到达前端后,都变成了JSON对象。
见拙作:http://blog.csdn.net/leftfist/article/details/42404989 (JSON参数 )
其中原因,固然是估计后端(asp.net)做了处理,将多种数据自动转换:
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));//改为JSON方式
另一方面,也是因为JSON类型确实强,跟XML一样,可以描述各种各样的数据格式。
这里又对后端将JSON作为参数传递做一些记录:
比如说,我前端用easyUI的datagrid,要分页,那么传递给前端的数据格式,应该是这样的:
{"total":106,"rows":[{},{},{}.....]}
那么后端该怎么生成这种格式呢?
有代码有J8:
using Newtonsoft.Json; [System.Web.Http.HttpGet] public JObject GetTags(string account) { JObject jobj = new JObject(); //ViewTag是自定义类 IList<ViewTag> list = customViewService.GetTags(ProjectId,account); jobj.Add("total", (JToken)list.Count()); jobj.Add("rows", JArray.FromObject(list)); return jobj; }