`

json格式转换成javaBean对象的方法

阅读更多


这个贴可以参考。
http://bbs.csdn.net/topics/390337723

写道
package cn.qtone.mobile.utils;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
* 将JSON数据转换为具体的对象
* @author jqp
*
*/
public class JsonUtil {

public static <T> T convertToObj(JSONObject jsonObject,Class<T> cla){
if(jsonObject==null) return null;
Field[] fb =cla.getDeclaredFields();
T t;
try {
t = cla.newInstance();
for(int j=0;j<fb.length;j++){
String fieldName = fb[j].getName();
String fieldNameU=fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1);
Method method=cla.getMethod("set"+fieldNameU, fb[j].getType());
method.invoke(t, jsonObject.get(fieldName));
}
return t;

} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

public static <T> List<T> convertToList(JSONArray jsonArray,Class<T> cla){
List<T> list=new ArrayList<T>();
if(jsonArray==null) return list;
try {
for(int i=0;i<jsonArray.length();i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
T t=JsonUtil.convertToObj(jsonObject, cla);
list.add(t);
}

} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}

}

 



googele 提供

package com.lecast.json.until;

import java.lang.reflect.Type;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;

/**
 * json 简单操作的工具类
 * @author lee.li
 *
 */
public class JsonUtil{

	private static Gson gson=null;
	static{
		if(gson==null){
			gson=new Gson();
		}
	}
	private JsonUtil(){}
	/**
	 * 将对象转换成json格式
	 * @param ts
	 * @return
	 */
	public static String objectToJson(Object ts){
		String jsonStr=null;
		if(gson!=null){
			jsonStr=gson.toJson(ts);
		}
		return jsonStr;
	}
	/**
	 * 将对象转换成json格式(并自定义日期格式)
	 * @param ts
	 * @return
	 */
	public static String objectToJsonDateSerializer(Object ts,final String dateformat){
		String jsonStr=null;
		gson=new GsonBuilder().registerTypeHierarchyAdapter(Date.class, new JsonSerializer<Date>() {
			public JsonElement serialize(Date src, Type typeOfSrc,
					JsonSerializationContext context) {
				SimpleDateFormat format = new SimpleDateFormat(dateformat);
				return new JsonPrimitive(format.format(src));
			}
		}).setDateFormat(dateformat).create();
		if(gson!=null){
			jsonStr=gson.toJson(ts);
		}
		return jsonStr;
	}
	/**
	 * 将json格式转换成list对象
	 * @param jsonStr
	 * @return
	 */
	public static List<?> jsonToList(String jsonStr){
		List<?> objList=null;
		if(gson!=null){
			java.lang.reflect.Type type=new com.google.gson.reflect.TypeToken<List<?>>(){}.getType();
			objList=gson.fromJson(jsonStr, type);
		}
		return objList;
	}
	/**
	 * 将json格式转换成map对象
	 * @param jsonStr
	 * @return
	 */
	public static Map<?,?> jsonToMap(String jsonStr){
		Map<?,?> objMap=null;
		if(gson!=null){
			java.lang.reflect.Type type=new com.google.gson.reflect.TypeToken<Map<?,?>>(){}.getType();
			objMap=gson.fromJson(jsonStr, type);
		}
		return objMap;
	}
	/**
	 * 将json转换成bean对象
	 * @param jsonStr
	 * @return
	 */
	public static Object  jsonToBean(String jsonStr,Class<?> cl){
		Object obj=null;
		if(gson!=null){
			obj=gson.fromJson(jsonStr, cl);
		}
		return obj;
	}
	/**
	 * 将json转换成bean对象
	 * @param jsonStr
	 * @param cl
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static <T> T  jsonToBeanDateSerializer(String jsonStr,Class<T> cl,final String pattern){
		Object obj=null;
		gson=new GsonBuilder().registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
			public Date deserialize(JsonElement json, Type typeOfT,
					JsonDeserializationContext context)
					throws JsonParseException {
					SimpleDateFormat format=new SimpleDateFormat(pattern);
					String dateStr=json.getAsString();
				try {
					return format.parse(dateStr);
				} catch (ParseException e) {
					e.printStackTrace();
				}
				return null;
			}
		}).setDateFormat(pattern).create();
		if(gson!=null){
			obj=gson.fromJson(jsonStr, cl);
		}
		return (T)obj;
	}
	/**
	 * 根据
	 * @param jsonStr
	 * @param key
	 * @return
	 */
	public static Object  getJsonValue(String jsonStr,String key){
		Object rulsObj=null;
		Map<?,?> rulsMap=jsonToMap(jsonStr);
		if(rulsMap!=null&&rulsMap.size()>0){
			rulsObj=rulsMap.get(key);
		}
		return rulsObj;
	}
	
}

 

 /** *//**
     * 从一个JSON 对象字符格式中得到一个java对象

     * @param jsonString json字符串

     * @param pojoCalss  java对象的class

     * @return

     */

    public static Object getObject4JsonString(String jsonString,Class pojoCalss)...{

        Object pojo;

        JSONObject jsonObject = JSONObject.fromObject( jsonString );  

        pojo = JSONObject.toBean(jsonObject,pojoCalss);

        return pojo;

    }

 

  /** *//**

     * 将java对象转换成json字符串

     * @param javaObj

     * @return

     */

    public static String getJsonString4JavaPOJO(Object javaObj)...{

        JSONObject json;

        json = JSONObject.fromObject(javaObj);

        return json.toString();     

    }

 

 

    /** *//**

     * 从json数组中得到相应java数组

     * @param jsonString

     * @return

     */

    public static Object[] getObjectArray4Json(String jsonString)...{

        JSONArray jsonArray = JSONArray.fromObject(jsonString);

        return jsonArray.toArray();

    }

 

  /** *//**

     * 从json对象集合表达式中得到一个java对象列表

     * @param jsonString

     * @param pojoClass

     * @return

     */

    public static List getList4Json(String jsonString, Class pojoClass)...{

        JSONArray jsonArray = JSONArray.fromObject(jsonString);

        JSONObject jsonObject;

        Object pojoValue; 

        List list = new ArrayList();

        for ( int i = 0 ; i<jsonArray.size(); i++)...{ 

            jsonObject = jsonArray.getJSONObject(i);

            pojoValue = JSONObject.toBean(jsonObject,pojoClass);

            list.add(pojoValue);

        }

        return list;

    }

 

package dsh.bikegis.tool;

import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.util.List;

/**
 * json的操作类
 * @author NanGuoCan
 *
 */
public class JsonUtil {
	  
	    /**
	      * @param object
	      *             任意对象
	      * @return java.lang.String
	      */  
	    public static String objectToJson(Object object) {   
	         StringBuilder json = new StringBuilder();   
	        if (object == null) {   
	             json.append("\"\"");   
	         } else if (object instanceof String || object instanceof Integer) { 
	             json.append("\"").append(object.toString()).append("\"");  
	         } else {   
	             json.append(beanToJson(object));   
	         }   
	        return json.toString();   
	     }   
	  
	    /**
	      * 功能描述:传入任意一个 javabean 对象生成一个指定规格的字符串
	      *
	      * @param bean
	      *             bean对象
	      * @return String
	      */  
	    public static String beanToJson(Object bean) {   
	         StringBuilder json = new StringBuilder();   
	         json.append("{");   
	         PropertyDescriptor[] props = null;   
	        try {   
	             props = Introspector.getBeanInfo(bean.getClass(), Object.class)   
	                     .getPropertyDescriptors();   
	         } catch (IntrospectionException e) {   
	         }   
	        if (props != null) {   
	            for (int i = 0; i < props.length; i++) {   
	                try {  
	                     String name = objectToJson(props[i].getName());   
	                     String value = objectToJson(props[i].getReadMethod().invoke(bean));  
	                     json.append(name);   
	                     json.append(":");   
	                     json.append(value);   
	                     json.append(",");  
	                 } catch (Exception e) {   
	                 }   
	             }   
	             json.setCharAt(json.length() - 1, '}');   
	         } else {   
	             json.append("}");   
	         }   
	        return json.toString();   
	     }   
	  
	    /**
	      * 功能描述:通过传入一个列表对象,调用指定方法将列表中的数据生成一个JSON规格指定字符串
	      *
	      * @param list
	      *             列表对象
	      * @return java.lang.String
	      */  
	    public static String listToJson(List<?> list) {   
	         StringBuilder json = new StringBuilder();   
	         json.append("[");   
	        if (list != null && list.size() > 0) {   
	            for (Object obj : list) {   
	                 json.append(objectToJson(obj));   
	                 json.append(",");   
	             }   
	             json.setCharAt(json.length() - 1, ']');   
	         } else {   
	             json.append("]");   
	         }   
	        return json.toString();   
	     }
}

 

 

package com.jetsum.util;

import java.io.StringReader;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import antlr.RecognitionException;
import antlr.TokenStreamException;

import com.sdicons.json.mapper.JSONMapper;
import com.sdicons.json.mapper.MapperException;
import com.sdicons.json.model.JSONArray;
import com.sdicons.json.model.JSONValue;
import com.sdicons.json.parser.JSONParser;

public class JsonUtil {

 /**
  * JAVA对象转换成JSON字符串
  * @param obj
  * @return
  * @throws MapperException
  */ 
 public static String objectToJsonStr(Object obj) throws MapperException{
        JSONValue jsonValue = JSONMapper.toJSON(obj);  
        String jsonStr = jsonValue.render(false);
        return jsonStr;
 }
 
 /**
  * 重载objectToJsonStr方法
  * @param obj 需要转换的JAVA对象
  * @param format 是否格式化
  * @return
  * @throws MapperException
  */
 public static String objectToJsonStr(Object obj,boolean format) throws MapperException{
        JSONValue jsonValue = JSONMapper.toJSON(obj);  
        String jsonStr = jsonValue.render(format);
        return jsonStr;
 } 
 
 /**
  * JSON字符串转换成JAVA对象
  * @param jsonStr
  * @param cla
  * @return
  * @throws MapperException
  * @throws TokenStreamException
  * @throws RecognitionException
  */
 @SuppressWarnings({ "rawtypes", "unchecked" })
 public static Object jsonStrToObject(String jsonStr,Class<?> cla) throws MapperException, TokenStreamException, RecognitionException{
  Object obj = null;
  try{
         JSONParser parser = new JSONParser(new StringReader(jsonStr));    
         JSONValue jsonValue = parser.nextValue();           
         if(jsonValue instanceof com.sdicons.json.model.JSONArray){
          List list = new ArrayList();
          JSONArray jsonArray = (JSONArray) jsonValue;
          for(int i=0;i<jsonArray.size();i++){
           JSONValue jsonObj = jsonArray.get(i);
           Object javaObj = JSONMapper.toJava(jsonObj,cla); 
           list.add(javaObj);
          }
          obj = list;
         }else if(jsonValue instanceof com.sdicons.json.model.JSONObject){
          obj = JSONMapper.toJava(jsonValue,cla); 
         }else{
          obj = jsonValue;
         }
        }catch(Exception e){
         e.printStackTrace();
        }
        return obj; 
 }
 
 /**
  * 将JAVA对象转换成JSON字符串
  * @param obj
  * @return
  * @throws IllegalArgumentException
  * @throws IllegalAccessException
  */
 @SuppressWarnings("rawtypes")
 public static String simpleObjectToJsonStr(Object obj,List<Class> claList) throws IllegalArgumentException, IllegalAccessException{
  if(obj==null){
   return "null";
  }
  String jsonStr = "{";
  Class<?> cla = obj.getClass();
  Field fields[] = cla.getDeclaredFields();
  for (Field field : fields) {
   field.setAccessible(true);
   if(field.getType() == long.class){
    jsonStr += """+field.getName()+"":"+field.getLong(obj)+",";
   }else if(field.getType() == double.class){
    jsonStr += """+field.getName()+"":"+field.getDouble(obj)+",";
   }else if(field.getType() == float.class){
    jsonStr += """+field.getName()+"":"+field.getFloat(obj)+",";
   }else if(field.getType() == int.class){
    jsonStr += """+field.getName()+"":"+field.getInt(obj)+",";
   }else if(field.getType() == boolean.class){
    jsonStr += """+field.getName()+"":"+field.getBoolean(obj)+",";
   }else if(field.getType() == Integer.class||field.getType() == Boolean.class
     ||field.getType() == Double.class||field.getType() == Float.class     
     ||field.getType() == Long.class){    
    jsonStr += """+field.getName()+"":"+field.get(obj)+",";
   }else if(field.getType() == String.class){
    jsonStr += """+field.getName()+"":""+field.get(obj)+"",";
   }else if(field.getType() == List.class){
    String value = simpleListToJsonStr((List<?>)field.get(obj),claList);
    jsonStr += """+field.getName()+"":"+value+",";    
   }else{  
    if(claList!=null&&claList.size()!=0&&claList.contains(field.getType())){
     String value = simpleObjectToJsonStr(field.get(obj),claList);
     jsonStr += """+field.getName()+"":"+value+",";     
    }else{
     jsonStr += """+field.getName()+"":null,";
    }
   }
  }
  jsonStr = jsonStr.substring(0,jsonStr.length()-1);
  jsonStr += "}";
   return jsonStr;  
 }
 
 /**
  * 将JAVA的LIST转换成JSON字符串
  * @param list
  * @return
  * @throws IllegalArgumentException
  * @throws IllegalAccessException
  */
 @SuppressWarnings("rawtypes")
 public static String simpleListToJsonStr(List<?> list,List<Class> claList) throws IllegalArgumentException, IllegalAccessException{
  if(list==null||list.size()==0){
   return "[]";
  }
  String jsonStr = "[";
  for (Object object : list) {
   jsonStr += simpleObjectToJsonStr(object,claList)+",";
  }
  jsonStr = jsonStr.substring(0,jsonStr.length()-1);
  jsonStr += "]";  
  return jsonStr;
 } 
 
 /**
  * 将JAVA的MAP转换成JSON字符串,
  * 只转换第一层数据
  * @param map
  * @return
  */
 public static String simpleMapToJsonStr(Map<?,?> map){
  if(map==null||map.isEmpty()){
   return "null";
  }
  String jsonStr = "{";
  Set<?> keySet = map.keySet();
  for (Object key : keySet) {
   jsonStr += """+key+"":""+map.get(key)+"",";  
  }
  jsonStr = jsonStr.substring(0,jsonStr.length()-1);
  jsonStr += "}";
  return jsonStr;
 }
}

 

分享到:
评论

相关推荐

    忽略字段的首字母大小写,将json字符串转成javabean对象

    忽略字段的首字母大小写,将json字符串转成javabean对象,解决Java对象中属性中首字母大写而取不到值(取到的值为空)的问题 忽略字段的首字母大小写,将json字符串转成List,解决Java对象中属性中首字母大写而取不...

    Json一键转Javabean工具

    "Json一键转Javabean工具"是一个实用的开发辅助工具,它能够帮助Java开发者快速地将JSON格式的数据转换成对应的JavaBean对象,极大地提高了开发效率。 JSON转换为JavaBean的过程通常包括以下步骤: 1. **解析JSON...

    javabean和json转换_javabean2json_

    Gson的`toJson()`方法将JavaBean对象转换为JSON字符串。在这个例子中,我们创建了一个User对象,并用Gson将其转换成JSON字符串。 另一方面,从JSON转换回JavaBean同样简单。假设我们有一个JSON字符串,想要反向转换...

    JavaBean与Json相互转换

    总结来说,JavaBean与Json的转换是Java开发中的基础技能,通过使用Jackson或Gson等库,可以轻松实现对象与字符串形式的数据交换。这在处理Web请求、数据传输以及序列化存储时都发挥着重要作用。理解并熟练掌握这一...

    json自动生成javabean的工具jar

    标题中的“json自动生成javabean的工具jar”是指一个Java的库或者工具,它以JAR(Java Archive)文件形式提供,功能是将JSON格式的数据自动转化为JavaBean对象。JAR文件是Java平台特有的归档格式,包含了一组Java类...

    JAVA-JSON工具转换类

    例如,如果有一个JavaBean对象,可以使用`toJson()`方法将其转化为JSON字符串,然后通过HTTP发送给客户端;反之,如果接收到客户端发送的JSON数据,可以用`fromJson()`方法解析并还原为JavaBean对象,便于进一步处理...

    json一键生成javabean工具

    将JSON数据转换为JavaBean对象,可以简化开发过程,提高代码的可读性和可维护性。 "json一键生成javabean工具"是一款实用的开发辅助工具,它能够快速地根据JSON格式的数据自动生成对应的JavaBean类。这极大地节省了...

    首字母大写的json串转为javabean实例

    5. **使用工具类或方法**:可以创建一个静态方法或者工具类,接收JSON字符串和JavaBean的Class类型作为参数,内部实现转换逻辑,这样在项目中可以复用。 6. **代码示例**:对于Gson库,可以创建一个自定义`...

    json转Map,转javaBean,javBean和Map转json

    同样,我们也可以将JSON字符串转换为JavaBean对象。首先,你需要定义一个与JSON结构对应的JavaBean类,然后使用Jackson的`ObjectMapper`进行转换: ```java public class User { private String name; private...

    javabean转换为json格式用到的所有包

    在Java开发中,将数据对象(如Javabean、List、Map)转换为JSON(JavaScript Object Notation)格式是常见的需求,这有利于数据在网络上传输或者存储。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    json一键转javabean工具

    "json一键转javabean工具"是一个非常实用的开发辅助工具,它的主要功能是将JSON格式的数据自动转换为对应的JavaBean类,大大节省了开发者手动编写Java类的时间,提高了开发效率。这个工具可能包含以下特性: 1. **...

    javaBean to json java对象转换json jar

    通过使用类似`JsonFactory.toJson()`这样的方法,开发者可以方便地将JavaBean对象转换为JSON字符串,从而进行数据交换或存储。这个自制的jar包简化了这一过程,无需额外引入其他大型的JSON处理库,提高了项目的轻量...

    jackson操作json和javabean示例

    这些方法可能包括将Java对象转换为JSON字符串,从JSON字符串反序列化到Java对象,以及处理JSON片段等。例如,`ObjectMapper`是Jackson的主要工具类,它可以方便地映射Java对象和JSON数据。 3. **Jackson树型模型**...

    json自动生成javabean_JavaEnityTools.jar.rar

    将JSON转换为JavaBean可以帮助开发者快速地将接收到的JSON数据映射到Java对象上,简化了数据处理的过程。 "json自动生成javabean_JavaEnityTools.jar" 是一个工具包,专门用于将JSON格式的数据自动转化为符合...

    使用第三方工具将各种对象转成json格式

    本主题以Java为例,探讨如何使用第三方库将JavaBean对象、List、Set或Map对象转换为JSON格式。 1. **JavaBean对象转JSON** JavaBean是一种遵循特定规范的Java类,通常用于封装数据。将JavaBean对象转为JSON时,...

    javaBean--jsonObject--jsonString相互转化

    最近在研究Webservice的时候遇到一个问题,把java对象转化问json后传过去,接受的是String类型,怎么恢复到原来的java对象呢,后来再一个项目中看到了转换方法,转换顺序为javaBean--jsonObject--jsonString,还原...

    Android解析——json解析为javabean

    在Android开发中,通常网络请求会返回JSON格式的响应数据,这时我们可以结合Retrofit或OkHttp等网络库,将网络请求的结果直接转换为JavaBean对象。例如,如果使用Retrofit,可以定义一个接口: ```java public ...

    json2javabean josnschema2pojo

    JSON到Java Bean转换工具,如"json2javabean"和"josnschema2pojo",是开发人员在处理JSON数据与Java对象之间转换时的便利工具。这些工具能够根据JSON格式的数据自动生成对应的Java类,使得数据绑定变得更加简单和...

    json转换JavaBean

    因此,将JSON转换为JavaBean意味着将JSON的键值对映射到Java类的属性。 2. **手动转换** 手动转换是通过编程的方式,逐个解析JSON字符串,然后设置到JavaBean的相应字段。这需要编写大量的解析代码,效率较低且...

    FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换操作

    FastJson支持JSON格式字符串、JSON对象(JSONObject)以及JavaBean之间的相互转换,使得数据处理变得简单。以下将详细解释这些转换操作。 1. JSON格式字符串到JSON对象的转换: 使用`JSON.parseObject()`方法可以...

Global site tag (gtag.js) - Google Analytics