通过JSONArray让json和javabean互相转换
来源:互联网 发布:证券从业资格证软件 编辑:程序博客网 时间:2024/05/21 22:22
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互相转换
- json和javabean互相转换
- javabean和json互相转换
- fastjson对json字符串JSONObject和JSONArray互相转换操作示例
- JSONArray类将JavaBean,List,Map转换成json字符串
- javabean对象和json对象互相转换及行读取文件处理
- JavaBean 和 Map 之间互相转换
- JavaBean 和 Map 之间互相转换
- JAXB实现JavaBean和xml互相转换
- json字符串转换为JSONObject和JSONArray
- json字符串转换为JSONObject和JSONArray .
- json字符串转换为JSONObject和JSONArray
- json字符串转换为JSONObject和JSONArray
- json字符串转换为JSONObject和JSONArray
- json字符串转换为JSONObject和JSONArray
- json字符串转换为JSONObject和JSONArray
- json字符串转换为JSONObject和JSONArray
- json字符串转换为JSONObject和JSONArray
- java.lang.OutOfMemoryError: PermGen space
- jQuery控制div层,使其移动、改变位置
- 设置eclipse自动提示功能
- eclipse 自动 getter setter 注释
- struts2利用<s:fielderror/>等标签详细地控制错误消息输出格式
- 通过JSONArray让json和javabean互相转换
- 将json从前台传到后台注意问题
- <s:iterator>标签的用法
- 转载:iText输出中文的三种字体选择方式
- 常见的正则表达式验证
- 验证数字范围的小插件
- Log4Net使用指南
- JS获取按键的代码,Js如何屏蔽用户的按键,Js获取用户按键对应的ASII码(兼容所有浏览器)
- js性能优化(二)