【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类型");
		}

	}
}

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

时间: 2024-10-14 10:39:35

【Android进阶】Gson解析json字符串的简单应用的相关文章

Android用Gson解析JSON字符串

在volley框架中有一个 protected Response<Result<T>> parseNetworkResponse(NetworkResponse response){}函数.从服务器上或者在缓存中获取的JSON字符串在这个函数进行解析. String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers, HTTP.UTF_8)) Result<

Gson解析json字符串、json数组转换成对象

实体类: public class Product { private int id; private String name; private String date; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name

android之GSON解析JSON

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库. 比如: <pre name="code" class="java">public class Order { public String id; public String OrderName; @Override public String toString() { return "id:"+id+",OrderNa

Android 使用Gson解析json案例详解

一.目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://code.google.com/p/google-gson/ 二.什么是JSON: JSON即JavaScript Object Natation, 它是一种轻量级的数据交换格式, 与XML一样, 是广泛被采用的客户端和服务端交互的解决方案. 三.JSON对象: JSON中对象(Object)以"{

Android 使用Gson解析json案例具体解释

一.眼下解析json有三种工具:org.json(Java经常使用的解析),fastjson(阿里巴巴project师开发的),Gson(Google官网出的),解析速度最快的是Gson,下载地址:https://code.google.com/p/google-gson/ 二.什么是JSON: JSON即JavaScript Object Natation, 它是一种轻量级的数据交换格式, 与XML一样, 是广泛被採用的client和服务端交互的解决方式. 三.JSON对象: JSON中对象(

java多种方式解析json字符串

第一种:用net.sf.json硬解.缺点:要求字段名称和json字符串中的字段名一样,字段命名会违反驼峰规则,也不利于拓展: JSONArray jsonArray = JSONArray.fromObject(str);  JSONObject jObj = jsonArray.getJSONObject(0);  User user= (User)jObj.toBean(jObj,User.class); 第二种:用Gson解析json字符串.优点:写法简单,字段名称只要使用@Serial

我的Android进阶之旅------&gt;解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题

1.问题描述 首先,需要解析的Json数据类似于下面的格式: { ret: 0, msg: "normal return.", news: [ { id: "NEW2016062800875700", from: "腾讯新闻客户端", qqnews_download_url: "http://inews.qq.com/m?refer=openapi_for_xiaotiancai", articletype: "1&

Android中使用Gson解析JSON数据的两种方法

Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组

Android中利用Gson解析Json

在Android开发中,Json是一种客户端与服务器端交互的一种语言,它语法简单,最好的是目前市面上有很便捷的轮子可以对他进行解析.例如,Gson就是google提供的一款用于解析或者生成Json的库,可以直接将Json字符串映射成对应的实体类,十分方便.下面我总结一下利用Gson解析Json的用法以及我遇到的问题. 最简单对象的解析: 例如下边这段Json字符串: { text: "Love", img:"http://img2.imgtn.bdimg.com/it/u=2