GSON - Java的JSON 简明使用教程

什么是JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。

什么是GSON

GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java对象转化为Json字符串。

JSON Vs XML

  1. JSON和XML的数据可读性基本相同
  2. JSON和XML同样拥有丰富的解析手段
  3. JSON相对于XML来讲,数据的体积小
  4. JSON与JavaScript的交互更加方便
  5. JSON对数据的描述性比XML较差
  6. JSON的速度要远远快于XML

JSON基本语法

{ "name":"Bill Gates" }

{
    "employees": [
        { "firstName":"John" , "lastName":"Doe" },
        { "firstName":"Anna" , "lastName":"Smith" },
        { "firstName":"Peter" , "lastName":"Jones" }
    ]
}

更多语法参考链接

添加依赖

Gradle:

dependencies {
  implementation 'com.google.code.gson:gson:2.8.6'
}

JSON字符串和JavaBean对象 互转

Gson gson = new Gson();
ConfigBean mConfigBean = gson.fromJson(aString,ConfigBean.class);
String bString = gson.toJson(mConfigBean)

示例中使用的Json文本和JavaBean类介绍

Json:

{
        "IP": "172.18.12.226",
        "VIDEO_PATH": "/xxxxfactory/AutoGamma.mp4",
        "PATTERN_NUM": 14,
        "PATTERN_LIST": 
        [255, 0, 0
        ,0, 255, 0
        ,0, 0, 255
        ,255, 255, 255
        ,230, 230, 230
        ,204, 204, 204
        ,179, 179, 179
        ,153, 153, 153
        ,128, 128, 128
        ,102, 102, 102
        ,77, 77, 77
        ,51, 51, 51
        ,26, 26, 26
        ,0, 0, 0]
    }

JavaBean类:

package com.example.whitebalance.confige;

import com.google.gson.annotations.SerializedName;

import java.util.List;

public class ConfigBean {
    /**
     * IP : 172.18.12.226
     * VIDEO_PATH : /xxxxfactory/AutoGamma.mp4
     * PATTERN_NUM : 14
     * PATTERN_LIST : [255,0,0,0,255,0,0,0,255,255,255,255,230,230,230,204,204,204,179,179,179,153,153,153,128,128,128,102,102,102,77,77,77,51,51,51,26,26,26,0,0,0]
     */
    @SerializedName("IP")
    private String ip;
    @SerializedName("VIDEO_PATH")
    private String videoPath;
    @SerializedName("PATTERN_NUM")
    private int patternNum;
    @SerializedName("PATTERN_LIST")
    private List<Integer> patternList;

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public String getVideoPath() {
        return videoPath;
    }

    public void setVideoPath(String videoPath) {
        this.videoPath = videoPath;
    }

    public int getPatternNum() {
        return patternNum;
    }

    public void setPatternNum(int patternNum) {
        this.patternNum = patternNum;
    }

    public List<Integer> getPatternList() {
        return patternList;
    }

    public void setPatternList(List<Integer> patternList) {
        this.patternList = patternList;
    }
}

顺便一提,此JavaBean类,是用Android Studio的插件 GsonFormat 生成的。
也可以手写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值