Gson数据解析

由于项目需要,接触到了Gson,以前只是简单用过Json,Gson没有怎么用过。

Gson比Json强大,有toJson,和fromjson两种重要的方法。

要使用Gson,需要导入google-gson-2.2.4的JAR包,Gson数据之所以使用方便,我感觉主要是JavaBean结合使用,使得数据的获取变得简单,JavaBean里面只有属性,和get,set方法。


下面我们解析一个字符串{  "data":

{

"user":"{

\"username\":\"cxl\",\"password\":\"1234\",\"tel\":\"2021\",\"mobile\":\"545\"

}"

}

}

先分析一下这个Json字符串,data对应的是对象,user对应的是字符串,字符串获取出来对应的是对象。

GsonDemo.Java

package com;

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class JsonArrayDemo {

	private User user = null;

	public static void main(String[] args) {

		User user = new User();
		user.setUsername("cxl");
		user.setPassword("1234");
		user.setMobile("545");
		user.setTel("2021");
		Gson gson = new Gson();
		String str = gson.toJson(user);

		JsonObject jsonObject = new JsonObject();
		jsonObject.addProperty("user", str);
		JsonObject jsonObject1 = new JsonObject();
		jsonObject1.add("data", jsonObject);

		System.out.println(jsonObject1.toString());
<span style="white-space:pre">		</span>// parse里面填入要解析的数据然后后面跟上getASJsonObject作为对象返回,获取data作为对象返回,获取user作为字符串返回
		String jsonObject3 = new JsonParser().parse(jsonObject1.toString())
				.getAsJsonObject().get("data").getAsJsonObject().get("user")
				.getAsString();
<span style="white-space:pre">		</span>// fromJson里面填的一个是Json字符串,一个是对象的JavaBean对象,属性字段要一致。
		 user=gson.fromJson(jsonObject3, User.class);
		 
		 System.out.println(user.getMobile());
		 

	}
}


User.java

package com;
public class User {

	private String username;
	private String password;
	private String tel;
	private String mobile;

	public User(){
		
	}
	
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getTel() {
		return tel;
	}

		public void setTel(String tel) {
		this.tel = tel;
	}

	
	public String getMobile() {
		return mobile;
	}

		public void setMobile(String mobile) {
		this.mobile = mobile;
	}

}
这样就解析了Json数据。用Gson解析的适合一对要对 对象,数组,字符串非常敏感,才能很好解析出来。



你可能感兴趣的:(json,android,gson,javabean)