这个贴可以参考。
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;
}
}
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对象,解决Java对象中属性中首字母大写而取不到值(取到的值为空)的问题 忽略字段的首字母大小写,将json字符串转成List,解决Java对象中属性中首字母大写而取不...
"Json一键转Javabean工具"是一个实用的开发辅助工具,它能够帮助Java开发者快速地将JSON格式的数据转换成对应的JavaBean对象,极大地提高了开发效率。 JSON转换为JavaBean的过程通常包括以下步骤: 1. **解析JSON...
Gson的`toJson()`方法将JavaBean对象转换为JSON字符串。在这个例子中,我们创建了一个User对象,并用Gson将其转换成JSON字符串。 另一方面,从JSON转换回JavaBean同样简单。假设我们有一个JSON字符串,想要反向转换...
总结来说,JavaBean与Json的转换是Java开发中的基础技能,通过使用Jackson或Gson等库,可以轻松实现对象与字符串形式的数据交换。这在处理Web请求、数据传输以及序列化存储时都发挥着重要作用。理解并熟练掌握这一...
标题中的“json自动生成javabean的工具jar”是指一个Java的库或者工具,它以JAR(Java Archive)文件形式提供,功能是将JSON格式的数据自动转化为JavaBean对象。JAR文件是Java平台特有的归档格式,包含了一组Java类...
例如,如果有一个JavaBean对象,可以使用`toJson()`方法将其转化为JSON字符串,然后通过HTTP发送给客户端;反之,如果接收到客户端发送的JSON数据,可以用`fromJson()`方法解析并还原为JavaBean对象,便于进一步处理...
将JSON数据转换为JavaBean对象,可以简化开发过程,提高代码的可读性和可维护性。 "json一键生成javabean工具"是一款实用的开发辅助工具,它能够快速地根据JSON格式的数据自动生成对应的JavaBean类。这极大地节省了...
5. **使用工具类或方法**:可以创建一个静态方法或者工具类,接收JSON字符串和JavaBean的Class类型作为参数,内部实现转换逻辑,这样在项目中可以复用。 6. **代码示例**:对于Gson库,可以创建一个自定义`...
同样,我们也可以将JSON字符串转换为JavaBean对象。首先,你需要定义一个与JSON结构对应的JavaBean类,然后使用Jackson的`ObjectMapper`进行转换: ```java public class User { private String name; private...
在Java开发中,将数据对象(如Javabean、List、Map)转换为JSON(JavaScript Object Notation)格式是常见的需求,这有利于数据在网络上传输或者存储。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也...
"json一键转javabean工具"是一个非常实用的开发辅助工具,它的主要功能是将JSON格式的数据自动转换为对应的JavaBean类,大大节省了开发者手动编写Java类的时间,提高了开发效率。这个工具可能包含以下特性: 1. **...
通过使用类似`JsonFactory.toJson()`这样的方法,开发者可以方便地将JavaBean对象转换为JSON字符串,从而进行数据交换或存储。这个自制的jar包简化了这一过程,无需额外引入其他大型的JSON处理库,提高了项目的轻量...
这些方法可能包括将Java对象转换为JSON字符串,从JSON字符串反序列化到Java对象,以及处理JSON片段等。例如,`ObjectMapper`是Jackson的主要工具类,它可以方便地映射Java对象和JSON数据。 3. **Jackson树型模型**...
将JSON转换为JavaBean可以帮助开发者快速地将接收到的JSON数据映射到Java对象上,简化了数据处理的过程。 "json自动生成javabean_JavaEnityTools.jar" 是一个工具包,专门用于将JSON格式的数据自动转化为符合...
本主题以Java为例,探讨如何使用第三方库将JavaBean对象、List、Set或Map对象转换为JSON格式。 1. **JavaBean对象转JSON** JavaBean是一种遵循特定规范的Java类,通常用于封装数据。将JavaBean对象转为JSON时,...
最近在研究Webservice的时候遇到一个问题,把java对象转化问json后传过去,接受的是String类型,怎么恢复到原来的java对象呢,后来再一个项目中看到了转换方法,转换顺序为javaBean--jsonObject--jsonString,还原...
在Android开发中,通常网络请求会返回JSON格式的响应数据,这时我们可以结合Retrofit或OkHttp等网络库,将网络请求的结果直接转换为JavaBean对象。例如,如果使用Retrofit,可以定义一个接口: ```java public ...
JSON到Java Bean转换工具,如"json2javabean"和"josnschema2pojo",是开发人员在处理JSON数据与Java对象之间转换时的便利工具。这些工具能够根据JSON格式的数据自动生成对应的Java类,使得数据绑定变得更加简单和...
因此,将JSON转换为JavaBean意味着将JSON的键值对映射到Java类的属性。 2. **手动转换** 手动转换是通过编程的方式,逐个解析JSON字符串,然后设置到JavaBean的相应字段。这需要编写大量的解析代码,效率较低且...
FastJson支持JSON格式字符串、JSON对象(JSONObject)以及JavaBean之间的相互转换,使得数据处理变得简单。以下将详细解释这些转换操作。 1. JSON格式字符串到JSON对象的转换: 使用`JSON.parseObject()`方法可以...