有时候网站前端传递一组对象给后台处理
如下格式json数据
[{"a":a,"b":b,"c":c},{"a2":a2,"b2":b2,"c2":c2},{"a1":a1,"b1":b1,"c1":c1}]
每一个对象表示一个对象,此对象用于更新数据库等。
处理json数据,我们需要下载三个jar包,本文下面会提供下载连接
json-lib-2.4-jdk15.jar
ezmorph-1.0.6.jar
commons-beanutils-1.9.2.jar
由于我使用的是ssh框架,所以我就想到了struts2的类型转换
因此我这里就直接在这个类里进行代码编写
action里的代码如下
public class uphbinfo extends ActionSupport{
private addredbao[] jbs;
神略get和set方法等
很明显,上面的代码是接收不到前台传递过来的数据的,因此我们就要用到类型转换
以代码是类型转换代码
public class StringRedbaoArrays extends StrutsTypeConverter{
@Override
public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
//获得前端传递过来的字符串
String getString = arg1[0];
//获得一个JSONArray数组
JSONArray array = JSONArray.fromObject(getString);
//定义长度
int strLenght = array.size();
//定义我们的Object
addredbao[] ard = new addredbao[strLenght];
//for循环,将每一个对象集合封装在一个m中
for(int i =0;i<strLenght;i++){
//初始化实体类
ard[i] = new addredbao();
//先将srray转换为JSONObject
JSONObject jsonObject = array.getJSONObject(i);
ard[i].setRedid(jsonObject.getInt("HBID"));
ard[i].setRedmoney(jsonObject.getDouble("HBmoney"));
}
System.out.println("zhelibiao五");
return ard;
}
@Override
public String convertToString(Map arg0, Object arg1) {
//数据重组,返回的字符串给前端使用
addredbao[] ard = (addredbao[]) arg1;
int lenght = ard.length;
String strdata="[";
for(int i=0;i<lenght;i++){
strdata = strdata+"{HBID:"+ard[i].getRedid()+",HBmoney:"+ard[i].getRedmoney()+"},";
}
strdata = strdata.substring(0, strdata.length()-1)+"]";
return "strdata";
}
}
以上代码截取我项目的部分代码,大家可以参考下,通过以下代码就实现了json与java对象的相互转换
json转java对象相关jar下载 密码: ddyf
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情