• 【Android进阶】Gson解析json字符串的简单应用




    在客户端与服务器之间进行数据传输,一般采用两种数据格式,一种是xml,一种是json。这两种数据交换形式各有千秋,比如使用json数据格式,数据量会比较小,传输速度快,放便解析,而采用xml数据格式,如果使用SAX解析方式,则可以一边加载一边解析,对于数据量比较大的应用,比较适合。今天主要整理一下使用Gson解析json格式字符串的简单使用。
    首先,必须导入外部包



    /**
     * 
     * @author ZhaoKaiQiang
     *
     * @time   2014年5月4日
     */
    public class JSONParser {
    
    	protected static Gson gson = new Gson();
    
    	/**
    	 * 任意对象转换为字符串
    	 * 
    	 * @param obj
    	 *            任意对象,可以是任何实体类,Map<?,?>,List<?>接口的实现
    	 * @return
    	 */
    	public static String toString(Object obj) {
    		return gson.toJson(obj);
    	}
    
    	/**
    	 * 标准JSON字符串反序列化为对象。
    	 * 
    	 * @param jsonString
    	 *            json字符串
    	 * @param type
    	 *            类型反射(Class<?>)或反射令牌(TypeToken)
    	 * @return
    	 */
    	public static Object toObject(String jsonString, Object type) {
    		jsonString = jsonString.replace(" ", "");
    		jsonString = jsonString.replace("﹠nbsp", "");
    		jsonString = jsonString.replace("nbsp", "");
    		jsonString = jsonString.replace("&", "");
    		jsonString = jsonString.replace("&", "");
    		jsonString = jsonString.replace("amp", "");
    
    		if (type instanceof Class<?>) {
    			try {
    				return gson.fromJson(jsonString, (Class<?>) type);
    			} catch (JsonSyntaxException e) {
    				e.printStackTrace();
    				return null;
    			}
    		} else if (type instanceof Type) {
    			try {
    				return gson.fromJson(jsonString, (Type) type);
    			} catch (JsonSyntaxException e) {
    				e.printStackTrace();
    				return null;
    			}
    		} else {
    			throw new RuntimeException("只能是Class<?>或者通过TypeToken获取的Type类型");
    		}
    
    	}
    }


  • 相关阅读:
    【力扣 077】451. 根据字符出现频率排序
    【力扣 072】1696. 跳跃游戏 VI
    【力扣 075】409. 最长回文串
    【力扣 078】387. 字符串中的第一个唯一字符
    日志切面接口和方法demo
    fastjson不出网代码利用
    随机生成指定长度的字符串
    C#内插字符串,格式化字符串
    C#,如何分别在x64和x86平台上加载同一个名称的原生dll
    软件体系结构——习题
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3749547.html
Copyright © 2020-2023  润新知