`
arpenker
  • 浏览: 343201 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Gson的解析Json数据的两种方式

 
阅读更多
Gson的解析Json数据的两种方式
2018年01月05日 20:34:00 胡大炮的妖孽人生 阅读数:18819 标签: gson json java 更多
个人分类: java
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处! https://blog.csdn.net/huplion/article/details/78984977
0x00 前言
目前网络上有很多接口是Json形式的,Gson是谷歌开源的Json解析库,可以方便的将Java对象转换成Json字符串,也可以方便的将Json字符串转换成Java对象。
0x01 两种解析Json字符串方式
假设我们要解析的字符串是如下字符串:
{
  "rst": 0,
  "msg": "ok",
  "data": {
    "cookie": "JSESSIONID=abcntKeuJhop56LGykfdw"
  }
}
1
2
3
4
5
6
7
方式一(建立一个映射类):
针对如上的数据:
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;
    }

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Data.java


public class Data {

    private String cookie;
    public void setCookie(String cookie) {
        this.cookie = cookie;
    }
    public String getCookie() {
        return cookie;
    }

}
1
2
3
4
5
6
7
8
9
10
11
12
主类: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());
1
2
3
4
5
6
7
8
9
10
11
结果

rst:0
msg:ok
data:JSESSIONID=abcntKeuJhop56LGykfdw

方式二(直接访问):
主类:Main.java

import 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());
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
结果

rst:0
msg:ok
data:JSESSIONID=abcntKeuJhop56LGykfdw

0x02 结论
两种方式各有优劣,在需要用的属性少的时候适合第二种方式,否则适合第一种方式。
分享到:
评论

相关推荐

    JSON、GSON解析json

    3. 使用GSON解析JSON: - 创建Java对象:首先,你需要创建对应的Java类,这些类的字段名应与JSON中的键对应。 - 创建Gson实例:`Gson gson = new Gson();` - 将JSON字符串转换为Java对象:`MyObject obj = gson....

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

    解析JSON数据,Gson提供了两种主要的方法: 1. **通过JsonReader对象解析JSON数据**: 这种方法适用于处理复杂和动态的JSON结构。首先,创建一个`JsonReader`对象,传入JSON字符串的`StringReader`实例。然后,...

    Gson解析(List和Map)格式json数据 - CSDN博客1

    【Gson解析JSON数据】 Gson是Google提供的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它可以将任何Java对象转换为它的JSON表示形式,反之亦然。在处理JSON数据时,我们经常遇到两种常见的数据结构:...

    Gson处理Json格式字符串代码

    首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON字符串通常包含键值对,用花括号包围,键与值之间用冒号分隔,键值对之间用...

    android之json和gson数据解析最完整的代码例子(包括各种样式的json数据)

    JSON数据主要由键值对(key-value pairs)组成,支持数组和对象两种结构。 2. JSON数据类型:JSON支持以下基本数据类型: - 字符串(String) - 数字(Number) - 布尔值(Boolean) - 数组(Array) - 对象...

    使用Gson和Json-lib去解析json和组装Json数据例子

    本文将深入探讨如何使用两个流行的Java库——Gson和Json-lib来解析和组装JSON数据。 **一、Gson库** Gson是由Google开发的一个Java库,它能将Java对象转换为JSON字符串,也能将JSON数据转换回等效的Java对象。使用...

    左右上下可拖动带表头的列表,GSON解析json接口数据,下拉刷新功能

    本文将深入探讨一个常见的需求:创建一个能够左右上下拖动、带有表头的列表,以及如何利用GSON解析JSON接口数据,实现下拉刷新和上拉加载功能。 首先,"左右上下可拖动带表头的列表"是指一种具有高度交互性的UI组件...

    两种方式解析json数据

    以下是一个使用Gson解析JSON的例子: ```java import com.google.gson.Gson; import java.util.Map; String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; Gson gson = new Gson(); ...

    Gson+Json的jar包

    这两个库都是用于处理JSON(JavaScript Object Notation)数据的,JSON是一种轻量级的数据交换格式,广泛应用于网络通信和数据存储。 Gson是Google提供的一个开源库,全称为Google Simple JSON。它的主要功能是将...

    Java中利用gson解析Json实例教程

    下面是Gson解析JSON的基本步骤: 1. 引入Gson库:在项目中引入Gson库的依赖。 2. 创建Gson对象:通过Gson类创建一个Gson实例。 3. 将JSON字符串转换为Java对象:使用Gson实例的fromJson方法,将JSON格式的字符串...

    利用Google Gson实现JSON字符串和对象之间相互转换

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Google Gson库提供了一个强大的工具,使得Java对象与JSON字符串之间的转换变得简单易行。本文将详细...

    java解析Json的两种方式

    以上就是Java解析JSON的两种常见方法:使用JSON库(如json-lib、Jackson或Gson)和Java内置API。选择哪种方式取决于项目需求,如性能、兼容性、易用性等。对于大型项目,推荐使用成熟的库,如Jackson,它提供了更...

    Android中Json数据解析三种方式:原生、Gson、FastJson

    使用Gson解析JSON数据如下: 首先,定义一个Java Bean类,对应JSON结构: ```java public class User { private String name; private int age; // getters and setters } ``` 然后使用Gson进行解析: ```...

    json的基本使用和使用Gson解析json.pdf

    JSON 的基础结构主要包括两种类型:对象(Object)和数组(Array)。 1. **对象(Object)**: - 对象是以键值对(key-value pairs)形式存在的数据结构,通常在编程中代表一个实体或记录。在 JSON 中,对象以大...

    Gson在解析json时依赖的jar包

    在本案例中,"Gson解析JSON的jar包"应该就是包含了Gson库的jar文件,可以直接下载并导入到你的项目中,这样就可以直接使用Gson提供的各种API了。 总的来说,Gson是一个强大且易用的JSON处理工具,它使得Java开发...

    Android_JSON数据解析

    总结,Android中解析JSON数据涉及的关键知识点包括JSON的基本结构、Gson库的使用、JSONObject和JSONArray的操作、Volley库的网络请求以及Retrofit框架的使用。这些工具和技术使得Android开发者能够高效地处理服务器...

    Gson和Jsonlib需要的jar包

    本篇文章将详细介绍两个流行的Java JSON解析库:Gson和Jsonlib。 ### Gson库 Gson是Google提供的一款强大的JSON库,它可以直接将Java对象转换为JSON字符串,也可以将JSON数据反序列化为Java对象。Gson的优点在于其...

    Gson_Json解析源码

    2. **JsonElement**:这是Gson解析JSON的基本单元,包括JsonObject、JsonArray、JsonPrimitive和JsonNull四种类型,分别对应JSON的四种基本结构:对象、数组、原始值(字符串、数字、布尔等)和null。 3. **...

    Gson实例解析Json

    5. **JsonParser类**:提供了一种逐行解析JSON的方式,对于复杂JSON的解析非常有用。 下面是一个使用Gson解析复杂JSON的例子: ```java import com.google.gson.Gson; import com.google.gson.JsonElement; import...

Global site tag (gtag.js) - Google Analytics