package org.msf.json; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Array; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** *@author masf *@date Jan 15, 2010 */ public class JSONHelp { public static void main(String[] args) throws Exception{ List list = new ArrayList(); list.add("fdsfd"); list.add(3234); /*String aa[] = {"11","22",null,"33"}; aa = (String[]) Array.newInstance(String.class, 3); for(String a:aa){ System.out.println(a+Array.getLength(aa)); Array.getLength(aa); }*/ Student student = new Student("号楼",23,new HashMap(),list,new Student("",33,new HashMap(),list,null)); System.out.println( new JSONHelp().getJson(student) ); //for(Field field : student.getClass().getDeclaredFields()){ //System.out.println(Introspector.decapitalize("getname")); //} } /** * 目前方法只支持基本数据类型 不包括Map Set List等 * @param obj * @return * @throws IntrospectionException * @throws IllegalArgumentException * @throws IllegalAccessException * @throws InvocationTargetException * @author masf */ public String getJson(Object obj) throws Exception{ if(obj == null) throw new RuntimeException("javabean实例为空"); BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); //获得bean的属性集合 PropertyDescriptor[] beanPropertys = beanInfo.getPropertyDescriptors(); StringBuffer str = new StringBuffer(); str.append("{"); for(PropertyDescriptor beanProperty : beanPropertys){ Method method = beanProperty.getReadMethod(); if(beanProperty.getName().equals("class")) continue; Object returnType = method.invoke(obj); str.append("'"+beanProperty.getName()+"'"); //数字不加单引号 if(Number.class.isInstance(returnType)){ str.append(":").append(returnType).append(","); continue; } str.append(":'").append(returnType).append("',"); } str.deleteCharAt(str.length()-1).append("}"); return str.toString(); } } ///////////////////////////////////////////////////////////////////////////////// package org.msf.json; import java.util.List; import java.util.Map; /** *@author masf *@date Jan 15, 2010 */ public class Student { private String name; private int sex; @SuppressWarnings("unchecked") private Map map; private Student student; @SuppressWarnings("unchecked") private List list; @SuppressWarnings("unchecked") public Student(String name , int sex,Map map,List list,Student student){ this.name = name; this.sex = sex; this.map = map; this.list = list; this.student = student; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } public Map getMap() { return map; } public void setMap(Map map) { this.map = map; } public Student getStudent() { return student; } public void setStudent(Student student) { this.student = student; } public List getList() { return list; } public void setList(List list) { this.list = list; } }
详细解决方案
简略java转json
热度:448 发布时间:2012-12-28 10:29:05.0
相关解决方案
- java 乱码 汉字是 ? 如何转换成汉字
- (Struts2+JSON+Ajax) XMLHttpRequest ==500如何解决
- java web 登录次数限制,该如何解决
- json 解析有关问题
- java 工商银行网银支付 B2B的 都亟需什么,需要注意什么
- Java Applet程序从JDK6升级到7时遇到的有关问题
- java web 视频相干
- 请教一个关于链接后缀的有关问题(java web 应用)
- java 系统单点登录解决方案
- java.lang.NumberFormatException: For input string: "id"该如何处理
- java.lang.NoSuchMethodException: setId([Ljava.lang.String;)解决方法
- java 获取客户端IP解决办法
- JAVA 后台怎么获得前台页面FCKedit编辑器中的内容以及内容的样式
- java 正则化匹配有关问题
- java web 受阻
- java.lang.IllegalStateException: No output folder,该怎么解决
- struts2-json中诠注@JSON(deserialize=false)是什么用?不是阻止JSON反序列化成JAVA对象吗?求解
- java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.makeAccess,该如何解决
- java 乱码有关问题 急求大神
- java EE错误如何解决阿,都是过了,没有能解决的!
- java 工程打包有关问题 多谢各位大神!多谢
- JAVA WEB导航条,该怎么处理
- java.sql.SQLException: Access denied for user 'root'@'localhost' (using password,该如何处理
- java 中Node 有关问题
- 关于 java 引述传递和值传递,你的知否
- 吐了,java Timer 终止不了。
- Java Web 学习中有关问题,请高手指教
- java web中的url地址小疑点。
- java web开发解决办法
- java.lang.NullPointerException解决方法