当前位置:  编程技术>java/j2ee

java反射实现javabean转json实例代码

    来源: 互联网  发布时间:2014-10-30

    本文导语:  ObjectToJson.java 代码如下:package com.ObjectToJson; import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Iterator; public class ObjectToJson {  public  static String ObjListToJson(Arra...

ObjectToJson.java

代码如下:

package com.ObjectToJson;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;

public class ObjectToJson {

 
 public  static String ObjListToJson(ArrayList list){
  StringBuilder build=new StringBuilder();
  //迭代器
  Iterator iterator=list.iterator();
  build.append("[");
  String separate="";
  while(iterator.hasNext()){
   build.append(separate);
   //object转json字符串
   String str=ObjToJson(iterator.next());
   build.append(str);
   separate=",";
  }
  build.append("]");
  return build.toString();
 }

 @SuppressWarnings("unchecked")
 public  static 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();
 }
}

 Test.java

 

代码如下:

 package com.test;

import java.util.ArrayList;

import com.ObjectToJson.ObjectToJson;

public class Test {
  public static void main(String[] args){
   //数据构建
   ArrayList list=getlist();
   //数据转换
   String listjson=ObjectToJson.ObjListToJson((ArrayList)list);
   System.out.println("{"data":"+listjson+"}");
  }

  public static ArrayList getlist(){
   User user00=new User();
   user00.setUserage("27");
   user00.setUsername("smart");
   user00.setUsersex("man");

   User user01=new User();
   user01.setUserage("27");
   user01.setUsername("smart00");
   user01.setUsersex("man");

   ArrayList list=new ArrayList();

   list.add(user00);
   list.add(user01);

   return list;
  }

}
 

 User.java

 

代码如下:

 package com.test;

public class User {
 private String username;
 private String usersex;
 private String userage;

 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getUsersex() {
  return usersex;
 }
 public void setUsersex(String usersex) {
  this.usersex = usersex;
 }
 public String getUserage() {
  return userage;
 }
 public void setUserage(String userage) {
  this.userage = userage;
 }
 

}
 

 测试结果

 

代码如下:

 {"data":[{"username":"smart","usersex":"man","userage":"27"},{"username":"smart00","usersex":"man","userage":"27"}]}
 

    
 
 

您可能感兴趣的文章:

  • Java 反射封装库 Mirror
  • 高手请进:JAVA中的“反射”是什么?
  • java增强开发类,反射工具 absir-core
  • 关于JAVA反射实现的问题
  • 请问java.lang.reflect这个包(反射)的主要用途?java.lang.reflect.Method这个类是干什么用的?
  • java反射机制示例
  • java反射使用示例分享
  • java根据方法名称取得反射方法的参数类型示例
  • Java反射学习 getClass()函数应用
  • java利用反射实现动态代理示例
  • java反射android的r文件的示例
  • Java反射工具包 reflectutils
  • Java 反射之私有字段和方法详细介绍
  • Java 采用反射获取class属性值的实现代码
  • Java反射机制(Reflection)浅析
  • java类加载器和类反射使用示例
  • java反射机制示例详解
  • java反射机制实战示例分享
  • java反射技术与类使用示例
  • java使用dom4j解析xml配置文件实现抽象工厂反射示例
  • java Servlet获取和设置cookie实例代码
  • 万般火急!关于java打印,已经得到printerJob实例,那么怎么通过它得到Pageable实例?
  • 可以有其他两个类的实例同时调用一个java实例的两个方法吗?
  • <java技术手册>与<java实例技术手册>这两本书怎么样?
  • Java单例模式实例简述
  • 寻求java加密算法及实例
  • java web start实例代码COPY不了,怎么办?
  • 请问哪里有《java实例技术手册》的电子书下载?100分赠送!
  • 请教:JAVA中说什么类的实例,那是怎么样的一个概念呢?
  • java实现大数加法(BigDecimal)的实例代码
  • Java究竟能干些什么呢?清高手们列举一些实例出来,跟帖有分.
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问普通java类和javabean的本质区别是什么
  • Java和JavaBean有什么区别?
  • Javabeans及Java Servlets
  • 请问学习JAVABEANS是不是就是学习java.beans.*类库??
  • 根据DB生成JAVABEAN及SQL的小工具 db2java
  • 卖全新JAVA书,东莞东湖花园交易:<java 服务器高级编程>Wrox程序员参考系列,机械工业出版社50元,<Enterprise JavaBeans 第二版>O're
  • 学习好JAVA的基本语法而且能独立编一些程序以后,用JAVA语言开发系统会有很多种方向,比如有JSP,JAVASCRIT,JAVABEAN等等,朝哪个方向发
  • 在JSP中调用JAVA类和使用JAVABEAN有什么区别?
  • 高分求有关java学习的好站点,及经典的介绍javabean的书籍。各位大侠,帮帮我好么?一定给分!
  • javabean中java流程与sql数据库的一个问题!!!!!!!!!
  • Java Servlet 和Javabeans分别是什么概念?两者之间什么关系?
  • 请教一个关于jsp,java servlet,javabean的问题
  • JSP用javabeans的时候java文件应该放在什么位置?
  • 如何放置javabean的*.java and *.class
  • 两个javabean的相互调用问题,各位java高手帮忙.
  • 请问在javabean,java和jsp代码中如何判断一个字符串是否数字,还有如何把string转换成int!!!高分请教!!!
  • 请问这样的.java算不算是javabean?
  • 晕了晕了又晕了:Java技术有多少分支:j2ee,j2me,serlet,javabean?平常说的学习Java,都是什么意思?
  • 大家好,初学Java, 我用的JDK1.2与Visual J++有什么区别?你们用的是什么工具?在DOS下编译与调试不是很麻烦吗?VJ开发的JavaBean是否也可用Jdk、JSP等来调用?
  • 在JSP利用JAVABEAN完成数据库的调用以及查询时出现的问题?JAVA高手请进
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3