zoukankan      html  css  js  c++  java
  • 【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类型");
    		}
    
    	}
    }


  • 相关阅读:
    C语言编译多文件
    vs(visual studio 2019)恢复默认设置
    everything 有文件搜不到
    potplayer显示右侧插入列表消息
    ubuntu 关机、重启命令
    post&get请求总结
    C# string格式的日期时间字符串转为DateTime类型
    css position: absolute、relative详解
    在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
    ASP.NET获取客户端及服务器的信息
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3749547.html
Copyright © 2011-2022 走看看