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();
        }
    }

  • 相关阅读:
    [转]手把手硬件电路详细设计过程
    虚拟机检测技术攻防
    TTL电平和CMOS电平总结
    每个程序员都应注意的9种反面模式
    优化Laravel网站打开速度
    如何在 PHP 中处理 Protocol Buffers 数据
    日请求亿级的 QQ 会员 AMS 平台 PHP7 升级实践
    跨境电商国际物流模式
    2016跨境电商五大物流模式盘点
    10个值得深思的PHP面试问题
  • 原文地址:https://www.cnblogs.com/wang3680/p/3256092.html
Copyright © 2011-2022 走看看