Gson数据解析

来源:互联网 发布:waifu2x caffe 编辑:程序博客网 时间:2024/06/05 12:29

由于项目需要,接触到了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解析的适合一对要对 对象,数组,字符串非常敏感,才能很好解析出来。



0 0
原创粉丝点击