zoukankan      html  css  js  c++  java
  • Java将List/JavaBean转成Json

    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.util.List;

    /**
     * json的操作类
     * 
     * 
    @author wsz
     * @createTime 2012-4-12
     * 
    @version 1.0
     
    */
    public class JsonUtil {

        
    /**
         * 传入任意一个 object对象生成一个指定规格的字符串
         * 
         * 
    @param object 任意对象
         * 
    @return String
         
    */
        
    public static String objectToJson(Object object) {
            StringBuilder json 
    = new StringBuilder();
            
    if (object == null) {
                json.append(
    """");
            } 
    else if (object instanceof String || object instanceof Integer || object instanceof Double) {
                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 (Exception e) {
                e.printStackTrace();
            }
            
    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 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();
        }
    }

  • 相关阅读:
    递归练习:走台阶
    递归练习:计算最大公约数和最小公倍数
    递归练习:逆序输出一个十进制数的各位数字
    m4, autoconf
    Makefile 和 CMakeLists.txt
    Java中的String pool
    小米路由Mini刷Breed, 潘多拉和LEDE
    Centos 编译LEDE/OpenWrt
    Centos6下编译安装gcc6.4.0
    IntelliJ IDEA遇到Unable to parse template “Class”错误
  • 原文地址:https://www.cnblogs.com/wang3680/p/3256092.html
Copyright © 2011-2022 走看看