有时候业务需求,我们前端需要传递一个数组参数(JSON同理,JSON格式是特殊的数组),这时候我们后端如何接收呢?
方便大家阅读,我直接将 语法放在了最上面,具体应用场景,在最后面。
前端处理JSON数组
当我们需要传递一个 JSON 数组时,我们需要这样来处理 :
前端传递的时候,将 JSON 数组 格式化,如下代码:
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
语法: JSON.stringify(value[, replacer[, space]])
实例
var param = [
//此时用户需要传递一个这样的参数
{"newcode": 2611081576, "proName" : "朗诗里程" },
{"newcode": 2611120026, "proName" : "朗诗光谷中心城"}
];
var paramStr = JSON.stringify(param);
$.ajax({
url:"http://www.fang.com",
type:"post",
data:{"param" : paramStr},
success:function(){
}
});
Request 接收数组
因为前端传递过来的是JSON 字符串,我们后端处理起来就非常方便了,我们可以直接 将JSON字符串反序列化 ,直接将 它序列化成我们所需要的实体集便可
private void GetParam(HttpContext context)
{
paramModel param = new paramModel ();//正式查询参数
//接收参数(反序列化JSON数据)
paramModel _param = new JavaScriptSerializer().Deserialize<paramModel >(context.Request["param"]);
}
实例介绍 及其他接收方式
如上图,用户勾选多条数据,这时候,我们需要传递一个 JSON数组,如下面的代码,这时我们如何后端如何接收呢?
var param = [
//此时用户需要传递一个这样的参数
{"newcode": 2611081576, "proName" : "朗诗里程" },
{"newcode": 2611120026, "proName" : "朗诗光谷中心城"}
];
$.ajax({
url:"http://www.baidu.com",
type:"post",
data:{"param" : param},
success:function(){
//todo
}
});
这时后端就只能 Request[“param[0][newcode]”], 这样就会产生问题,
- 第一我们不知道前端传递了多少数据
- 第二我们处理这种数据太麻烦,
我们上面介绍的便是简单的方法处理。