在客户端与服务器之间进行数据传输,一般采用两种数据格式,一种是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类型"); } } }