使用JAVA反射机制将简单JAVA been对象、数组转化为对应的Json串
来源:互联网 发布:java随机生成10以内的 编辑:程序博客网 时间:2024/04/28 09:45
rt.
直接上代码:
package doc_02_json;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * 模块说明: 使用java反射机制将javabean对象和对象数组分别转成json字符串 * */public class ToJson { // java bean to json public String objToJson(Object obj) { StringBuilder build = new StringBuilder(); build.append("{"); @SuppressWarnings("rawtypes") Class cla = null; try { // 反射加载类 cla = Class.forName(obj.getClass().getName()); } catch (ClassNotFoundException e) { System.out.println(obj.getClass().toString().concat(" 未找到这个类")); e.printStackTrace(); return null; } StringBuffer methodname = new StringBuffer(); // 获取java类的变量 Field[] fields = cla.getDeclaredFields(); String separate = ""; for (Field temp : fields) { build.append(separate); build.append("\""); build.append(temp.getName()); build.append("\":"); methodname.append("get"); methodname.append(temp.getName().substring(0, 1).toUpperCase()); methodname.append(temp.getName().substring(1)); build.append("\""); Method method = null; try { // 获取java的get方法 method = cla.getMethod(methodname.toString()); } catch (NoSuchMethodException | SecurityException e) { methodname.setLength(0); e.printStackTrace(); } try { // 执行get方法,获取变量参数的直。 build.append(method.invoke(obj)); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } build.append("\""); methodname.setLength(0); separate = ","; } build.append("}"); return build.toString(); } // array to json public String arrToJson(Object[] objs) { StringBuilder build = new StringBuilder(); build.append("["); String separate = ""; for (Object obj : objs) { build.append(separate); // object转json字符串 String str = objToJson(obj); build.append(str); separate = ","; } build.append("]"); return build.toString(); }}
Java bean:
package doc_02_json;/** * 模块说明: java bean * */public class User { private int id; private String name; private int age; public User(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public String getName() { return name; } public int getAge() { return age; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; }}
测试:
package doc_02_json;/** * 模块说明: 测试 * */public class Test { public static void main(String[] args) { User user1 = new User(1, "zhangsan", 30); User user2 = new User(2, "lisi", 40); User user3 = new User(3, "wangwu", 25); User[] users = { user1, user2, user3 }; ToJson toJson = new ToJson(); System.out.println("将User转化为json:" + toJson.objToJson(user1)); System.out.println("将User[]转化为json:" + toJson.arrToJson(users)); }}
运行结果:
end.
0 0
- 使用JAVA反射机制将简单JAVA been对象、数组转化为对应的Json串
- java使用反射将json对象转换为java对象
- java 将复杂对象转化为Json
- 将json字符串转化为java对象
- 将json文件转化为java对象的编写
- js将数组对象转化为json格式的数组
- json数组转化为java对象、忽视不需要转化的json字段
- java JSON转化为对象的例子
- json数据转化为对应的对象
- JSON 转化为java对象
- JSON转化为java对象
- json-lib将json格式的字符串,转化为java对象
- 将Json对象转化为Java实体类
- 将json字符串转化为json数组,以及转化为java中的集合
- java方式的将java对象以及list或者map转化为json数据
- java方式的将java对象以及list或者map转化为json数据 .
- java方式的将java对象以及list或者map转化为json数据 .
- JAVA实现将GeoHash转化为对应的经纬度坐标
- 关于su 、su - 及 sudo的区别
- UIAlertController详解及用法
- CC2541设置外部时钟为32Mhz
- Android性能优化典范
- Linux基础 第二部分 文件、目录与磁盘格式
- 使用JAVA反射机制将简单JAVA been对象、数组转化为对应的Json串
- 阿里云配置nginx +php + mysql
- 微信自定义菜单生成器
- 判断低版本浏览器给出相应提示过段时间消失
- FrameLayout用法【转】
- svn is already locked解决方案
- QT 2d各种画图
- PLMN http://baike.baidu.com/link?url=OwyPKkWC2NhTD3-SZ7W7I32RNI254nfXTo0F2GVNj4mulMZWV9WzTOxgtSmHf
- 测试人员告诉我的第一个bug