将一个对象转化为类json风格字符串的工具类
来源:互联网 发布:cad制图网络兼职 编辑:程序博客网 时间:2024/06/01 23:54
- import java.lang.reflect.Field;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.util.Collection;
- import java.util.Map;
- import java.util.Set;
- /**
- * 将对象转化为字符串的工具类,适用于对象,简单类型,Collection,Map
- * 注意:对象的属性必须有相应的get方法
- * @author plucury
- *
- * @version $Id: Obj2StringUtil.java,v 0.1 2009-9-17 下午08:45:31 Exp $
- */
- public class Obj2StringUtil {
- /**
- * 将传入对象转化为String
- * @param object
- * @return
- */
- @SuppressWarnings( { "unchecked" })
- public static String toObjString(Object obj) {
- boolean startFlag = true;
- StringBuilder sb = new StringBuilder();
- sb.append("{");
- Class clz = obj.getClass();
- Field[] fields = clz.getDeclaredFields();
- for (Field field : fields) {
- if (!startFlag) {
- sb.append(",");
- }
- startFlag = false;
- Class[] types = new Class[] {};
- try {
- Method m = clz.getMethod(toGetterString(field.getName()), types);
- Object value = m.invoke(obj);
- sb.append(field.getName());
- sb.append(":");
- sb.append(Obj2StringUtil.toDistributeString(value));
- } catch (IllegalAccessException e) {
- System.out.println("调用的方法无法访问:" + toGetterString(field.getName()));
- } catch (IllegalArgumentException e) {
- System.out.println("使用了非法的参数:" + toGetterString(field.getName()));
- } catch (InvocationTargetException e) {
- System.out.println("方法异常:" + toGetterString(field.getName()));
- } catch (NullPointerException e) {
- System.out.println(e.getStackTrace());
- } catch (ExceptionInInitializerError e) {
- System.out.println("方法初始化异常:" + toGetterString(field.getName()));
- } catch (NoSuchMethodException e) {
- System.out.println("调用的方法不存在:" + toGetterString(field.getName()));
- }
- }
- sb.append("}");
- return sb.toString();
- }
- /**
- * 将传入的Collection转化为String
- * @param collection
- * @return
- */
- @SuppressWarnings( { "unchecked" })
- public static String toCollectionString(Collection collection) {
- boolean startFlag = true;
- StringBuilder sb = new StringBuilder();
- sb.append("[");
- for (Object obj : collection) {
- if (!startFlag) {
- sb.append(",");
- }
- startFlag = false;
- sb.append(Obj2StringUtil.toDistributeString(obj));
- }
- sb.append("]");
- return sb.toString();
- }
- /**
- * 将传入的Map转化为String
- * @param map
- * @return
- */
- @SuppressWarnings( { "unchecked" })
- public static String toMapString(Map map) {
- boolean startFlag = true;
- StringBuilder sb = new StringBuilder();
- sb.append("[");
- Set keySet = map.keySet();
- for (Object obj : keySet) {
- if (!startFlag) {
- sb.append(",");
- }
- startFlag = false;
- sb.append(Obj2StringUtil.toDistributeString(obj));
- sb.append(":");
- sb.append(Obj2StringUtil.toDistributeString(map.get(obj)));
- }
- sb.append("]");
- return sb.toString();
- }
- @SuppressWarnings( { "unchecked" })
- private static String toDistributeString(Object obj) {
- if (obj == null) {
- return "null";
- } else if (Obj2StringUtil.isBasicObj(obj)) {
- return obj.toString();
- } else if (obj instanceof Collection) {
- return Obj2StringUtil.toCollectionString((Collection) obj);
- } else if (obj instanceof Map) {
- return Obj2StringUtil.toMapString((Map) obj);
- } else {
- return Obj2StringUtil.toObjString(obj);
- }
- }
- private static String toGetterString(String feildName) {
- String head = feildName.substring(0, 1);
- String tail = feildName.substring(1);
- head = head.toUpperCase();
- return "get" + head + tail;
- }
- private static boolean isBasicObj(Object obj) {
- if (obj instanceof Integer) {
- return true;
- }
- if (obj instanceof Long) {
- return true;
- }
- if (obj instanceof Short) {
- return true;
- }
- if (obj instanceof Boolean) {
- return true;
- }
- if (obj instanceof Float) {
- return true;
- }
- if (obj instanceof Double) {
- return true;
- }
- if (obj instanceof String) {
- return true;
- }
- return false;
- }
- }
- 将一个对象转化为类json风格字符串的工具类
- 将一个对象转化为类json风格字符串的工具类
- 将一个对象转化为类json风格字符串的工具类
- 将json字符串转化为Map对象
- 将json字符串转化为java对象
- 如何将json对象转化为字符串?
- 将对象转化为JSON格式字符串
- 一个json对象相互转化工具类
- 之前写的一个XML工具类,包括将JSON对象转换为XML对象
- asp.net MVC 将 DataTable转化为客户端的JSon字符串及Ext JSon对象
- json-lib将json格式的字符串,转化为java对象
- 将Json对象转化为Java实体类
- Java对象转换为json字符串的工具类
- 移动开发:将json字符串转化为相关对象
- javascript中如何将对象转化为json字符串?
- 将json对象转化为xml、soap字符串
- JSON.parse()方法,将数据(字符串)转化为javascript对象
- 对象转化json工具类
- 配置SQL Server 2005 Express的身份验证方式及启用sa登录名
- MVC入门学习笔记(十)
- 水货iPhone 4解锁无期 有锁版价格跳水
- 上帝给我们的恩赐----《阿甘正传》有感
- 将一个对象转化为类json风格字符串的工具类
- 将一个对象转化为类json风格字符串的工具类
- Android OS 有比 iOS 更多的免费软件
- 将一个对象转化为类json风格字符串的工具类
- jQuery对象和DOM对象 只学习心得
- shell sort with C++
- 哥的第一次
- SQL-Server2005 sa用户设置,身份验证模式修改
- 少有人来
- 第三章Databases and Database Files(1)