json简易操作类

2023-04-12
import java.beans.Introspector;
 
import java.beans.PropertyDescriptor;
 
import java.util.ArrayList;
 
import java.util.HashMap;
 
import java.util.Iterator;
 
import java.util.List;
 
import java.util.Map;
 
import java.util.Set;
 
import java.util.Map.Entry;
 

/**
 
 * 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 if(object instanceof Map) {
 
          json.append(mapToJson((Map)object));    
        } else {
 
            json.append(beanToJson(object));
 
        }
 
        return json.toString();
 
    }
 

    /**
 
     * 传入任意一个map对象生成一个指定规格的字符串
 
     * @param object
 
     * @return
 
     */
 
    private static String mapToJson(Map map) {
 
        // TODO Auto-generated method stub
 
        StringBuilder json = new StringBuilder();
 
        json.append("{");
 
        if(map!=null) {
 
            Set set = map.entrySet();
 
            for(Iterator it=set.iterator();it.hasNext();) {
 
                Entry en = (Entry)it.next();
 
                String name = (String)en.getKey();
 
                String value = objectToJson(en.getValue());
 
                json.append(name);
 
                json.append(":");
 
                json.append(value);
 
                json.append(",");
 
            }
 
            json.setCharAt(json.length()-1, '}');
 
        }else {
 
            json.append("}");
 
        }
 
        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,null));
 
                    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 (Iterator it=list.iterator();it.hasNext();) {
 
                Object obj = it.next();
 
                json.append(objectToJson(obj));
 
                json.append(",");
 
            }
 
            json.setCharAt(json.length() - 1, ']');
 
        } else {
 
            json.append("]");
 
        }
 
        return json.toString();
 
    }
 
    public static void main(String[] args) {
 
        /*Test111 test111 = new Test111();
 
        test111.setAddr("啦啦");
 
        test111.setName("人");
 
        Test111 test222 = new Test111();
 
        test222.setAddr("他他他");
 
        test222.setName("dfdg");*/
 
        Map kk = new HashMap();
 
        kk.put("name1", "明白1");
 
        kk.put("name2","明白11111");
 
        Map kk1 = new HashMap();
 
        kk1.put("name1", "明白2");
 
        kk1.put("name2","明白2222");
 
        List list = new ArrayList();
 
        list.add(kk);
 
        list.add(kk1);
 
        /*list.add(test111);
 
        list.add(test222);*/
 
        System.out.println(JsonUtil.listToJson(list));
 
        
    }
 
}

本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。

免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com