Java 利用Gson解析Json数据 添加Gson源码jar包 查看GSON 
								
							
						java 利用Gson解析Json数据 添加Gson源码jar包 查看GSON源码
1.可以利用Android API中的JsonReader解析Json数据
2.可以引入Gson的jar包,结合JavaBean解析Json数据

Bean.java
package com.sphere.json;public class Bean {    /**    
 * Bean中的数据必须与Json数据中的key键值     
 * 一一对应  名字不可更改、     
 * name 与json的name键值对应     
 * wife 与json数据中的wife对应     
 * 否则会出现读取为null的现象     
 */    PRivate String name;    
 private String wife;        
 public String getName() {        
 return name;    }    public void setName(String name) {        
 this.name = name;    }    public String getWife() {        
 return wife;    }    public void setWife(String wife) {        
 this.wife = wife;    }        }
View CodeGson解析工具类
package com.sphere.json;import java.io.IOException;import java.io.StringReader;import java.lang
测试类Test.java
package com.sphere.json;import com.google.gson.Gson;public class Test {        static String jso输出结果:
name --->张无忌    wife --->敏敏特穆尔name --->杨过    wife --->小龙女我叫张无忌 我妻子是敏敏特穆尔list中第1个元素{wife=敏敏特穆尔, name=张无忌}list中第2个元素{wife=小龙女, name=杨过}假设我想跟踪代码查看某个gson中函数的具体实现,该如何添加对源码信息的查看呢。
其实很简单, 我们先下载gson-2.2.4-sources.jar这个jar包,将其拷贝到libs目录下。

我们在代码中使用ctrl + 左键 ,点击某个gson的API函数,如下,我们查看JsonReader这个函数

eclipse跳转到.class 页面

我们点击箭头所指的按钮attch source, 如下图:

因为我们把source.jar拷贝到了工程目录下 所以这里选择workspace

选中源码的jar

点击确定,就可以在eclipse中查看追踪gson的源码了。

以下关于gson基本用法示例来自http://www.cnblogs.com/kunpengit/p/4001680.html
(3)bean转换json
Gson gson = new Gson();String json = gson.toJson(obj);obj
是对象
(4)json转换bean
Gson gson = new Gson();
String json = "{\"id\":\"2\",\"name\":\"Json技术\"}";Book book = gson.fromJson(json, Book.class);(5)json转换复杂的bean,比如List,Set将json转换成复杂类型的bean,需要使用
TypeTokenGson gson = new Gson();
String json = "[{\"id\":\"1\",\"name\":\"Json技术\"},
{\"id\":\"2\",\"name\":\"java技术\"}]";
//将json转换成ListList list = gson.fromJson(json,new TypeToken<LIST>() 
{}.getType());//将json转换成SetSet set = gson.fromJson(json,new TypeToken<SET>() {}.getType());(6)通过json对象直接操作json以及一些json的工具a)格式化
JsonString json = "[{\"id\":\"1\",\"name\":\"Json技术\"},
{\"id\":\"2\",\"name\":\"java技术\"}]";Gson gson = new GsonBuilder().
setPrettyPrinting().create();JsonParser jp = new JsonParser();
JsonElement je = jp.parse(json);json = gson.toJson(je);b)
判断字符串是否是json,通过捕捉的异常来判断是否是jsonString json = "[{\"id\":\"1\",\"name\":\"Json技术\"},
{\"id\":\"2\",\"name\":\"java技术\"}]";boolean jsonFlag;try {new JsonParser().parse(str).getAsJsonObject();
jsonFlag = true;} catch (Exception e) {jsonFlag = false;}c)从json串中获取属性
String json = "{\"id\":\"1\",\"name\":\"Json技术\"}";
String propertyName = 'id';String propertyValue = "";try {JsonParser jsonParser = new JsonParser();
JsonElement element = jsonParser.parse(json);
JsonObject jsonObj = element.getAsJsonObject();propertyValue = jsonObj.get(propertyName).toString();
} catch (Exception e) {propertyValue = null;}d)除去json中的某个属性
String json = "{\"id\":\"1\",\"name\":\"Json技术\"}";String propertyName = 'id';
JsonParser jsonParser = new JsonParser();JsonElement element = jsonParser.parse(json);
JsonObject jsonObj = element.getAsJsonObject();jsonObj.remove(propertyName);json = jsonObj.toString();e)向json中添加属性
String json = "{\"id\":\"1\",\"name\":\"Json技术\"}";String propertyName 
= 'desc';Object propertyValue = "json各种技术的调研";
JsonParser jsonParser = new JsonParser();JsonElement element = jsonParser.parse(json);
JsonObject jsonObj = element.getAsJsonObject();jsonObj.addProperty(propertyName, new Gson().
toJson(propertyValue));json = jsonObj.toString();f)修改json中的属性
String json = "{\"id\":\"1\",\"name\":\"Json技术\"}";
String propertyName = 'name';Object propertyValue = "json各种技术的调研";
JsonParser jsonParser = new JsonParser();JsonElement element = jsonParser.parse(json);
JsonObject jsonObj = element.getAsJsonObject();jsonObj.remove(propertyName);jsonObj.addProperty(propertyName, 
new Gson().toJson(propertyValue));json = jsonObj.toString();g)判断json中是否有属性
String json = "{\"id\":\"1\",\"name\":\"Json技术\"}";String propertyName = 'name';
boolean isContains = false ;JsonParser jsonParser = new JsonParser();
JsonElement element = jsonParser.parse(json);JsonObject jsonObj = element.getAsJsonObject();
isContains = jsonObj.has(propertyName);h)json中日期格式的处理
GsonBuilder builder = new GsonBuilder();builder.setDateFormat("yyyy-MM-dd 
HH:mm:ss.SSS");Gson gson = builder.create()
然后使用gson对象进行json的处理,如果出现日期Date类的对象,就会按照设置的格式进行处理i)json中对于Html的转义
Gson gson = new Gson();
这种对象默认对Html进行转义,如果不想转义使用下面的方法
GsonBuilder builder = new GsonBuilder(); builder.disableHtmlEscaping();Gson gson = builder.create();