首页新闻找找看学习计划

ajax 传数组怎么在后台接收也是数组呢

0
悬赏园豆:5 [已解决问题] 解决于 2017-04-13 09:30

}
$('#addAndEditDialog').dialog('close');
$.ajax({
type: 'POST',
url: 'autoMakeHcode?operator=<%=operator%>&onoroff=on',
data: {"chboxValue":JSON.stringify(chboxValue)},
traditional: true,
success: function(data){
$('#datagrid').datagrid('reload');
},
dataType: 'json'
});

}
} ]

 

 

后台:

String chboxValue= getRequest().getParameter("chboxValue");
System.out.println("接收到的数组:"+chboxValue);

 

控制台打印:接收到的数组:["GMSC","MSC"]

 

这个是String类型 ,有直接的方法转成String类型的数组也可以啊

 

 

name_zhang的主页 name_zhang | 初学一级 | 园豆:183
提问于:2017-04-06 11:52
< >
分享
最佳答案
0

前台传值到后台,都是按照name属性的,同一name属性的多个值,默认会用一个字符串"a,b,c,d,e"接受到,后台只需要使用split(",")分割一下就可以转换为string[] ,典型的案例就是多选框,一个name,可选多个值

收获园豆:3
CodeL | 初学一级 |园豆:87 | 2017-04-06 13:21

我接受到的是String类型的:String ss= "["a","b","c"] " ,  如果拆分会拆成:["a"   和   "b"  和   "c"]   ,我要的是String类型的数组:String[] ss=["a","b","c"] ;  

name_zhang | 园豆:183 (初学一级) | 2017-04-06 13:33

@name_zhang: 是你这里的原因:data: {"chboxValue":JSON.stringify(chboxValue)},

 

chboxValue需要在后台进行json反序列化,然后就可以直接得到集合

CodeL | 园豆:87 (初学一级) | 2017-04-06 13:58

@name_zhang: 

我是这样用的

PurchaseDetail = JSON.stringify(dataRows);

PurchaseDetail.JsonDeserialize<List<t_Purchase_PurchaseItem>>();

CodeL | 园豆:87 (初学一级) | 2017-04-06 13:59

@CodeL: 能再详细点么

name_zhang | 园豆:183 (初学一级) | 2017-04-06 14:34

@name_zhang: 后台反序列号

CodeL | 园豆:87 (初学一级) | 2017-04-06 14:46

@name_zhang: 序列化

CodeL | 园豆:87 (初学一级) | 2017-04-06 14:46

@name_zhang: JsonConert.Deserialize<List<string>>();

CodeL | 园豆:87 (初学一级) | 2017-04-06 14:47
其他回答(2)
0

你用的什么框架,springmvc可以直接接受吧,后者用json转

[3] | 园豆:1172 (小虾三级) | 2017-04-06 11:54

用的ssm,  这个框架可以转么  ? 

有代码么  ,  看看

支持(0) 反对(0) name_zhang | 园豆:183 (初学一级) | 2017-04-06 11:57
0

需要JSON.stringify(arr)将数组转为字符串,然后后台再将字符串转为数组

收获园豆:2
codingHeart | 园豆:1511 (小虾三级) | 2017-04-06 13:16

我接收到的是String类型的["GMSC","MSC"],,,,,怎么直接转为数组啊,?

最好直接上代码

支持(0) 反对(0) name_zhang | 园豆:183 (初学一级) | 2017-04-06 13:20

@name_zhang: 后台什么语言

支持(0) 反对(0) codingHeart | 园豆:1511 (小虾三级) | 2017-04-06 13:38

@codingHeart: java

支持(0) 反对(0) name_zhang | 园豆:183 (初学一级) | 2017-04-06 13:39

@name_zhang: 简单点的可以直接当字符处理了:str.Replace("[","").Replace("]","").Rplit(',') 大致这个意思

支持(0) 反对(0) codingHeart | 园豆:1511 (小虾三级) | 2017-04-06 13:48

@codingHeart: 这样可以解决,既然可以接收到怎么都能弄成我想要的样子。我只是想应该可以直接接受成数组或者直接转成数组,而不需要这么麻烦。我想应该是我传参数或者接受数据的时候少了点什么,想让帮看看,,

支持(0) 反对(0) name_zhang | 园豆:183 (初学一级) | 2017-04-06 14:13

@name_zhang: 直接接受数组是不可能的,那是你的错觉,它是序列化之后的字符串,因为前台的数组跟后台的数组不是同一个东西,需要序列化、反序列化,避免不了的。

支持(0) 反对(0) codingHeart | 园豆:1511 (小虾三级) | 2017-04-06 14:22

@codingHeart: 那就是在后台反序列化就可以么, 怎么搞,上点代码啊

支持(0) 反对(0) name_zhang | 园豆:183 (初学一级) | 2017-04-06 14:42

@name_zhang: 

我不熟悉java的API   参考

支持(0) 反对(0) codingHeart | 园豆:1511 (小虾三级) | 2017-04-06 14:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册