• Jason使用


    Jason是一种数据传输时候的一种格式,类似XML。

    package liferay;
    
    
    import java.beans.IntrospectionException;
    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.math.BigDecimal;
    import java.math.BigInteger;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    import demo.Student;
    
    public class JsonUtils {
    	/**
    	 * @param obj
    	 *            Any Object
    	 * @return String
    	 */
    	public static String object2json(Object obj) {
    		StringBuilder json = new StringBuilder();
    		if (obj == null) {
    			json.append("""");
    		} else if (obj instanceof String || obj instanceof Integer
    				|| obj instanceof Float || obj instanceof Boolean
    				|| obj instanceof Short || obj instanceof Double
    				|| obj instanceof Long || obj instanceof BigDecimal
    				|| obj instanceof BigInteger || obj instanceof Byte) {
    			if (obj.toString().length() > 0
    					&& String.valueOf(obj.toString().charAt(0)).equals("[")) {
    				json.append(string2json(obj.toString()));
    			} else
    				json.append(""").append(string2json(obj.toString()))
    						.append(""");
    		} else if (obj instanceof Object[]) {
    			json.append(array2json((Object[]) obj));
    		} else if (obj instanceof List) {
    			json.append(list2json((List<?>) obj));
    		} else if (obj instanceof Map) {
    			json.append(map2json((Map<?, ?>) obj));
    		} else if (obj instanceof Set) {
    			json.append(set2json((Set<?>) obj));
    		} else {
    			json.append(bean2json(obj));
    		}
    		return json.toString();
    	}
    
    	/**
    	 * @param bean
    	 *            bean Object
    	 * @return String
    	 */
    	public static String bean2json(Object bean) {
    		StringBuilder json = new StringBuilder();
    		json.append("{");
    		PropertyDescriptor[] props = null;
    		try {
    			props = Introspector.getBeanInfo(bean.getClass(), Object.class)
    					.getPropertyDescriptors();
    		} catch (IntrospectionException e) {
    			e.printStackTrace();
    		}
    		if (props != null) {
    			for (int i = 0; i < props.length; i++) {
    				try {
    					String name = object2json(props[i].getName());
    					String value = object2json(props[i].getReadMethod().invoke(
    							bean));
    					json.append(name);
    					json.append(":");
    					json.append(value);
    					json.append(",");
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    			json.setCharAt(json.length() - 1, '}');
    		} else {
    			json.append("}");
    		}
    		return json.toString();
    	}
    
    	/**
    	 * @param list
    	 *            list Object
    	 * @return String
    	 */
    	public static String list2json(List<?> list) {
    		StringBuilder json = new StringBuilder();
    		json.append("[");
    		if (list != null && list.size() > 0) {
    			for (Object obj : list) {
    				json.append(object2json(obj));
    				json.append(",");
    			}
    			json.setCharAt(json.length() - 1, ']');
    		} else {
    			json.append("]");
    		}
    		return json.toString();
    	}
    
    	/**
    	 * @param array
    	 *            array object
    	 * @return String
    	 */
    	public static String array2json(Object[] array) {
    		StringBuilder json = new StringBuilder();
    		json.append("[");
    		if (array != null && array.length > 0) {
    			for (Object obj : array) {
    				json.append(object2json(obj));
    				json.append(",");
    			}
    			json.setCharAt(json.length() - 1, ']');
    		} else {
    			json.append("]");
    		}
    		return json.toString();
    	}
    
    	/**
    	 * @param map
    	 *            map object
    	 * @return String
    	 */
    	public static String map2json(Map<?, ?> map) {
    		StringBuilder json = new StringBuilder();
    		json.append("{");
    		if (map != null && map.size() > 0) {
    			for (Object key : map.keySet()) {
    				json.append(object2json(key));
    				json.append(":");
    				json.append(object2json(map.get(key)));
    				json.append(",");
    			}
    			json.setCharAt(json.length() - 1, '}');
    		} else {
    			json.append("}");
    		}
    		return json.toString();
    	}
    
    	/**
    	 * @param set
    	 *            set object
    	 * @return String
    	 */
    	public static String set2json(Set<?> set) {
    		StringBuilder json = new StringBuilder();
    		json.append("[");
    		if (set != null && set.size() > 0) {
    			for (Object obj : set) {
    				json.append(object2json(obj));
    				json.append(",");
    			}
    			json.setCharAt(json.length() - 1, ']');
    		} else {
    			json.append("]");
    		}
    		return json.toString();
    	}
    
    	/**
    	 * @param s
    	 *            arg
    	 * @return String
    	 */
    	public static String string2json(String s) {
    		if (null == s) {
    			return "";
    		}
    		StringBuilder sb = new StringBuilder();
    		for (int i = 0; i < s.length(); i++) {
    			char ch = s.charAt(i);
    			switch (ch) {
    			case '"':
    				sb.append(""");
    				break;
    			case '\':
    				sb.append("\\");
    				break;
    			case '':
    				sb.append("\b");
    				break;
    			case 'f':
    				sb.append("\f");
    				break;
    			case '
    ':
    				sb.append("\n");
    				break;
    			case '
    ':
    				sb.append("\r");
    				break;
    			case '	':
    				sb.append("\t");
    				break;
    			case '/':
    				sb.append("/");
    				break;
    			default:
    				if (ch >= 'u0000' && ch <= 'u001F') {
    					String ss = Integer.toHexString(ch);
    					sb.append("\u");
    					for (int k = 0; k < 4 - ss.length(); k++) {
    						sb.append('0');
    					}
    					sb.append(ss.toUpperCase());
    				} else {
    					sb.append(ch);
    				}
    			}
    		}
    		return sb.toString();
    
    	}
    	
    	
    	public static void main(String[] args) {
    		Student student = new Student();
    		student.setName("张三");
    		student.setScore(100);
    		student.setSex("男");
    		student.setClzss("Java122班");
    		
    		String jason = bean2json(student);
    		
    		System.out.println(jason);
    		
    		String str = "我\叫张三abxsdsd,dfsvgfd,as\das";
    		str = string2json(str);
    		System.out.println(str);
    		
    		String ss = object2json(student);
    		
    		System.out.println("===========================");
    		System.out.println(ss);
    		
    		
    	}
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    }
    

      

  • 相关阅读:
    查看Linux主机CPU及内存信息
    linux配置java环境变量(详细)
    Linux安装Redis
    Linux关闭防火墙
    使用Unison同步服务器目录
    Nginx详细配置
    CentOS命令行无线上网
    SQL Server查询所有的表名/空间占用量/行数
    CentOS安装Nginx安装详解
    基于 Django 2.0.4 的 djcelery 配置
  • 原文地址:https://www.cnblogs.com/airycode/p/4809329.html
Copyright © 2020-2023  润新知