Java Gson 实现 Json 数据的生成与解析

Posted Yogile

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Gson 实现 Json 数据的生成与解析相关的知识,希望对你有一定的参考价值。

前言

Json 作为一种简单便捷的数据格式,可以被各种语言默认或者以插件支持。

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

Gson

项目地址

说明

  • Gson是一个Java库,可用于将Java对象转换为其JSON表示形式。它还可以用于将JSON字符串转换为等效的Java对象。Gson可以处理任意Java对象,包括您没有源代码的现有对象。

    有一些开源项目可以将Java对象转换为JSON。但是,大多数方法都要求您在类中放置Java批注。如果您无法访问源代码,则无法执行某些操作。大多数还不完全支持Java泛型的使用。Gson认为这两个都是非常重要的设计目标。

功能

  • 提供简单的 toJson()fromJson() 方法,将Java对象到JSON,反之亦然
  • 允许将现有的不可修改对象与JSON相互转换
  • Java泛型的广泛支持
  • 允许对象的自定义表示
  • 支持任意复杂的对象(具有深层继承层次结构和泛型类型的广泛使用)

导入

  • 这里只记录 Gradle 的导入方式,更多方式请看 github 项目说明。

    目前版本为:2.8.6 。

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

示例

  • 使用 Gson 你应先创建一个 JSON 对应的 Java 类。

    示例:

    public class JsonFromGson {
    	private String name;
    	private String password;
    	
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public void setPassword(String password) {
    		this.password = password;
    	}
    	
    	public String getName() {
    		return name;
    	}
    	
    	public String getPassword() {
    		return password;
    	}
    }
    

方法

  • Gson 主要包含两个常用的方法:toJson()fromJson()

toJson()

  • 现有一个 JsonFromGson 类的对象,要转化为一个符合 JsonFromGson 类的 Json 字符串,示例:

    Gson gson = new Gson();
    JsonFromGson jsonFromGson = new JsonFromGson();
    jsonFromGson.setName("yogile");
    jsonFromGson.setPassword("yogilepwd");
    String getGson = gson.toJson(jsonFromGson);
    System.out.println(getGson);
    
  • 输出显示:

    {"name":"yogile","password":"yogilepwd"}
    

fromJson()

  • 现有一个符合 JsonFromGson 类的 Json 字符串,要转化为一个 JsonFromGson 类的对象,示例:

    Gson gson = new Gson();
    String strGson = "{"name":"yogile","password":"yogilepwd"}";
    JsonFromGson jsonFromGson = new JsonFromGson();
    jsonFromGson = gson.fromJson(strGson, JsonFromGson.class);
    System.out.println("name: " + jsonFromGson.getName() + "
    password: " + jsonFromGson.getPassword());
    
  • 输出显示:

    name: yogile
    password: yogilepwd
    

以上是关于Java Gson 实现 Json 数据的生成与解析的主要内容,如果未能解决你的问题,请参考以下文章

java怎么取json数据的值

使用gson解析,生成Json

75JSON 解析库---FastJson, Gson

Gson解析Json

使用GSON来生成JSON数据

java怎么使用gson解析json字符串