Gson的解析Json数据的两种方式
2018-01-05 20:34
756 查看
0x00 前言
目前网络上有很多接口是Json形式的,Gson是谷歌开源的Json解析库,可以方便的将Java对象转换成Json字符串,也可以方便的将Json字符串转换成Java对象。
0x01 两种解析Json字符串方式
假设我们要解析的字符串是如下字符串:
{ "rst": 0, "msg": "ok", "data": { "cookie": "JSESSIONID=abcntKeuJhop56LGykfdw" } }
方式一(建立一个映射类):
针对如上的数据:https://www.bejson.com/json2javapojo/new/
我们可以手动建立如下的类或者访问以上的链接建立如下Java实体类:
JsonRootBean.java
public class JsonRootBean { private int rst; private String msg; private Data data; public void setRst(int rst) { this.rst = rst; } public int getRst() { return rst; } public void setMsg(String msg) { this.msg = msg; } public String getMsg() { return msg; } public void setData(Data data) { this.data = data; } public Data getData() { return data; } }
Data.java
public class Data { private String cookie; public void setCookie(String cookie) { this.cookie = cookie; } public String getCookie() { return cookie; } }
主类:Main.java
String json = "{\n" + " \"rst\": 0,\n" + " \"msg\": \"ok\",\n" + " \"data\": {\n" + " \"cookie\": \"JSESSIONID=abcntKeuJhop56LGykfdw\"\n" + " }\n" + "}"; JsonRootBean jsonRootBean = new Gson().fromJson(json, JsonRootBean.class); System.out.println("rst:" + jsonRootBean.getRst()); System.out.println("msg:" + jsonRootBean.getMsg()); System.out.println("data:" + jsonRootBean.getData().getCookie());
结果
rst:0
msg:ok
data:JSESSIONID=abcntKeuJhop56LGykfdw
方式二(直接访问):
主类:Main.javaimport com.google.gson.JsonObject; import com.google.gson.JsonParser; public class Main { public static void main(String[] args) { String json = "{\n" + " \"rst\": 0,\n" + " \"msg\": \"ok\",\n" + " \"data\": {\n" + " \"cookie\": \"JSESSIONID=abcntKeuJhop56LGykfdw\"\n" + " }\n" + "}"; JsonObject jsonObject = (JsonObject) new JsonParser().parse(json); System.out.println("rst:" + jsonObject.get("rst").getAsInt()); System.out.println("msg:" + jsonObject.get("msg").getAsString()); System.out.println("data:" + jsonObject.get("data").getAsJsonObject().get("cookie").getAsString()); } }
结果
rst:0
msg:ok
data:JSESSIONID=abcntKeuJhop56LGykfdw
0x02 结论
两种方式各有优劣,在需要用的属性少的时候适合第二种方式,否则适合第一种方式。
相关文章推荐
- Android学习笔记45-JSON数据解析(GSON方式)
- Java解析Json数据的两种方式
- Android学习笔记45:JSON数据解析(GSON方式)
- eval解析JSON中的注意点 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数。 2. 使用Function对象来进行返回解析。 使用eval
- 通过GSON 解析Json数据,但是不创建JAVA Bean的方式,获取对应的值
- 使用Gson解析两种复杂的json数据
- 在spring mvc中解析输入为json格式的数据有两种方式
- GSON方式生成和解析json数据
- Android JSON数据解析(GSON方式)
- Android中使用Gson解析JSON数据的两种方法
- Android中使用Gson解析JSON数据的两种方法
- Android学习笔记45:JSON数据解析(GSON方式)
- Android中使用Gson解析JSON数据的两种方法
- ajax重新认识:(2)json数据解析两种方式
- Android中使用Gson解析JSON数据的两种方法
- GSON方式生成和解析json数据
- 解析JSON数据后的两种显示方式
- JSON数据解析(GSON方式)
- Java后台解析Json数据的两种方式
- Android中解析json数据的方式之一:Gson