Json   发布时间:2022-04-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了通过JSONArray让json和javabean互相转换大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

package com.cjonline.foundation.util;

import java.lang.reflect.Array;
import java.util.Date;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.PropertyFilter;
@SuppressWarnings("all")
public class JsonToJavaUtil {
/**
* 将json转成成javaBean对象
* @param <T> 返回类型
* @param json 字符串
* @param clazz 需要转换成的类
* @return
*/
public static <T> T[] jsonToJavaBean(String json,Class<T> clazz) {
if(json==null || !json.startsWith("[") || !json.endsWith("]") ){
throw new RuntimeException("JSONArray 必须以'['开头,以']'结尾");
}
JSONArray array = JSONArray.fromObject(json); //先读取字符串数组
Object[] objs = array.toArray(); //转成对像数组
if(objs.length>0){
JsonConfig config = new JsonConfig();
config.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor());
T[] tArrs = (T[]) Array.newInstance(clazz,objs.length);
for(int i=0;i<objs.length;i++){
JSONObject jsonObj = JSONObject.fromObject(objs[i],config); //再使用JsonObject遍历一个个的对像
T t = (T) jsonObj.toBean(jsonObj,clazz); //指定转换的类型,但仍需要强制转化-成功
tArrs[i]=t;
}
return tArrs;
}
return null;
}
/**
* 将javaBean转成json串
* @param obj 对象
* @param ignore 过滤掉的属性
* @return
*/
public static String javaBeanToJson(Object obj,final String[] ignorE){
JsonConfig config = new JsonConfig();
config.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor());
PropertyFilter filter = new PropertyFilter(){
public Boolean apply(Object source,String name,Object value){
if(ignore!=null && ignore.length>0){
for(String s : ignorE){
if(s!=null && s.equals(Name)) {
return true;
}
}
}
return false;
}
};
config.setJsonPropertyFilter(filter);
JSONArray s = JSONArray.fromObject(obj,config);
return s.toString();
}
}

package com.cjonline.foundation.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

public class JsonDateValueProcessor implements JsonValueProcessor { /** * datePattern */ private String datePattern = "yyyy-MM-dd"; /** * JsonDateValueProcessor */ public JsonDateValueProcessor() { super(); } public JsonDateValueProcessor(String format) { super(); this.datePattern = format; } public Object processArrayValue(Object value,JsonConfig jsonConfig) { return process(value); } public Object processObjectValue(String key,Object value,JsonConfig jsonConfig) { return process(value); } private Object process(Object value) { try { if (value instanceof DatE) { SimpleDateFormat sdf = new SimpleDateFormat(datePattern,Locale.UK); return sdf.format((DatE) value); } return value == null ? "" : value.toString(); } catch (Exception E) { return ""; } } public String getDatePattern() { return datePattern; } public void setDatePattern(String PDAtePattern){ datePattern = PDAtePattern; } }

大佬总结

以上是大佬教程为你收集整理的通过JSONArray让json和javabean互相转换全部内容,希望文章能够帮你解决通过JSONArray让json和javabean互相转换所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。