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 生成的。
也可以手写。

猜你喜欢

转载自blog.csdn.net/oLiZuoZuo12/article/details/108364534