js数组到后台转 list数组

前台的数组格式是:

[{"credit_record_certificate_id":"452","credit_record_type":"294","credit_record_money_sum":"100","credit_record_monthly_amount":"1000","credit_record_actual_money":"1000","credit_record_deadline":"2014-11-24","credit_record_deadline_t":"2014-11-27","credit_record_remark":"备注备注"},{"credit_record_certificate_id":"452","credit_record_type":"298","credit_record_money_sum":"200","credit_record_monthly_amount":"2000","credit_record_actual_money":"2000","credit_record_deadline":"2014-11-26","credit_record_deadline_t":"2014-11-06","credit_record_remark":"备注"}]

数组格式是这样的,怎么转list的呢?下面我直接粘代码吧,能解释就解释一下,毕竟现在是上班时间!

    /**
     * 根据传入的json数组,返回指定包含类型的集合
     * 
     * @param jsonStr [{id:1,name:gx},{id:2,name:wxm}]
     * @param clazz
     * @return
     * @author xuxiaohua
     */
    public static <T> List<T> jsonArrayToList(String jsonStr, Class<T> clazz) {
        if (jsonStr == null || jsonStr.trim().equals("")) {
            return null;
        }
        List<T> resultList = new ArrayList<T>();
        GsonBuilder builder = new GsonBuilder();
        builder.registerTypeAdapter(java.lang.Double.class, new DoubleAdapter());
        builder.registerTypeAdapter(java.lang.Integer.class, new IntegerAdapter());
        builder.registerTypeAdapter(java.math.BigInteger.class, new BigIntegerAdapter());
        builder.registerTypeAdapter(java.lang.Long.class, new LongAdapter());
        builder.registerTypeAdapter(java.sql.Date.class, new SqlDateAdapter("yyyy-MM-dd"));
        builder.registerTypeAdapter(java.sql.Timestamp.class, new SqlTimestampAdapter("yyyy-MM-dd HH:mm:ss"));
        builder.registerTypeAdapter(java.math.BigDecimal.class, new BigDecimalAdapter());
        Gson gson = builder.create();
        //Gson gson = new Gson();
        JsonParser jsonParser = new JsonParser();
        JsonElement jsonElement = jsonParser.parse(jsonStr); // 将json字符串转换成JsonElement
        JsonArray jsonArray = jsonElement.getAsJsonArray(); // 将JsonElement转换成JsonArray
        Iterator<JsonElement> it = jsonArray.iterator(); // Iterator处理
        while (it.hasNext()) { // 循环
            jsonElement = (JsonElement) it.next(); // 提取JsonElement
            String menu = jsonElement.toString(); // JsonElement转换成String
            if(StringUtil.isBlank(menu)){
                menu = null;
            }
            T bean = gson.fromJson(menu, clazz); // String转化成JavaBean
            resultList.add(bean); // 加入List
        }
        return resultList;
    }    

上面代码方法绝对是一个工具方法

jsonArrayToList

,so,你需要建立一个工具类:JsonUtil。

好了,现在页面要传值过来了,我要用到这个方法了开始吧!

@Override	
@Transactional
public String saveXd(String zxRecord){
	List<McsCreRevCertificateModelRecordBean> list=  JsonUtil.jsonArrayToList(zxRecord, McsCreRevCertificateModelRecordBean.class);
	List<McsCreRevCertificateModelRecordBean> revCertificateModelRecordBeans=new ArrayList<McsCreRevCertificateModelRecordBean>();
	for(McsCreRevCertificateModelRecordBean zxif:list){
		revCertificateModelRecordBeans.add(zxif);
	}
	
	for(int j=0;j<revCertificateModelRecordBeans.size();j++){
			mcscrerevcertificatemodelDao.saveRecord(revCertificateModelRecordBeans.get(j));//保存方法,
	}	
}

  

时间,请带我像一条小溪流般,安静地流淌,汇入爱的海洋。
原文地址:https://www.cnblogs.com/1246447850qqcom/p/4119092.html