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

  • 相关阅读:
    [开源项目]蓝点无限TWR算法-多基站多标签固件
    [开源项目] 蓝点无限 UWB Python版本上位机
    记一次RabbitMQ的脑裂(网络分区)问题
    使用Docker持久化部署SQL Server
    .NET---Exceptionless 轻量级的分布式日志管理平台
    python性能测试工具locust
    Javascript —— 线转树 or 树转线
    记录一个生僻知识点 —— JS字符模板替换
    车证识别工具|行驶证识别工具|行驶证识别OCR工具免费版V3.0.0.0
    C# CAD 凹凸点识别最大轮廓
  • 原文地址:https://www.cnblogs.com/wang3680/p/3256092.html
Copyright © 2011-2022 走看看