有时候网站前端传递一组对象给后台处理
如下格式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/天,具体规则查看活动详情