前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gson在java中的简要使用

Gson在java中的简要使用

作者头像
用户5166556
发布2019-04-16 11:45:13
1.7K0
发布2019-04-16 11:45:13
举报

最近在把一个数组或字符串转化成对象时,使用了Google的Gson感觉不错,下面我以代码的形式详细举例来介绍

上面的注释部分为输出结果,使用了maven ,这里是Gson的maven依赖

代码语言:javascript
复制
 <dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.2</version>
		</dependency> 
代码语言:javascript
复制
package gson;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.junit.Test;

import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;

public class AllInAllGSON {
	   Gson gson = new Gson();//生成一个json对象
      @Test
      /**
       * [1,2,3,4,5,6,7,8,9,0] ["one","two","three","four","five","six","seven","eight","nine","zero"] [[1,2,3],[3,4,5],[4,5,6]]
       *  3 1n3 2n3 3n3 4n3 5n3 6n3 7n3 8n3 9n3 0n4 onen4 twon4 threen4 fourn4 fiven4 sixn4 sevenn4 eightn4 ninen4 zero data 1 data 2 data 3
       *data 3 data 4 data 5
        data 4 data 5 data 6
       */
      public void arrayToJson(){
    	  int [] n1 = {1,2,3,4,5,6,7,8,9,0};
    	  int[][] data = {{1, 2, 3}, {3, 4, 5}, {4, 5, 6}};
    	  String [] n2 = {"one","two","three","four","five","six","seven","eight","nine","zero"}; 
    	 
    	  String x1 = gson.toJson(n1);//把数组转化成json
    	  String x2 = gson.toJson(n2);
    	  String x3 = gson.toJson(data);
    	  System.out.println(x1+ " "+ x2+" "+x3);
    	  int [] n3 = gson.fromJson(x1, int[].class);//把一个json转成数组
    	  String [] n4 = gson.fromJson(x2, String[].class);
    	  int [][] n5 = gson.fromJson(x3, int[][].class);
    	  for(int i=0;i<n3.length;i++){
    		  System.out.print("n3 "+n3[i]);
    	  }
    	  for(int i=0;i<n4.length;i++){
    		  System.out.print("n4 "+n4[i]);
    	  }
    	  for(int i=0;i<data.length;i++){
    		  for(int j=0;j<data[i].length;j++){
    			  System.out.print(" data "+data[i][j]);
    		  }
    		  System.out.println("");
    	  }
      }
      @Test
      /**
       * list ["hi","hello","how"]
       * [{"name":"Alice","address":"AppSt","dateOfBirth":"Nov 1, 3900 12:00:00 AM"},{"name":"Bob","address":"Baa St"},{"name":"Carol","address":"Grape St","dateOfBirth":"Jun 21, 3900 12:00:00 AM"},{"name":"Mallory","address":"Mango St"}]
		name Alice
		name Bob
		name Carol
		name Mallory
       */
      public void listToJson(){
    	  List<String> list = new ArrayList<String>();//把一个list集合转化成json串
    	  list.add("hi");
    	  list.add("hello");
    	  list.add("how");
    	  String str = gson.toJson(list);
    	  System.out.println("list "+str);
    	  Student a = new Student("Alice", "AppSt", new Date(2000, 10, 1));
          Student b = new Student("Bob", "Baa St", null);
          Student c = new Student("Carol", "Grape St", new Date(2000, 5, 21));
          Student d = new Student("Mallory", "Mango St", null);
          List<Student> student = new ArrayList<Student>();
          student.add(a);
          student.add(b);
          student.add(c);
          student.add(d);
          String str1 = gson.toJson(student);
          System.out.println(str1);
          Type type = new TypeToken<List<Student>>(){}.getType();//把json串转化成一个student对象
          List<Student> stu = gson.fromJson(str1, type);
          for(Student s:stu){
        	  System.out.println("name " + s.getName());
          }
      }
      @Test
      /**
       * {"WHITE":"5454#FFFFFF","BLUE":"0000FF","YELLOW":"sd#FFFF00","GREEN":"1008000","BLACK":"000000","RED":"#FeF0000"}
			map 5454#FFFFFF
			map 0000FF
			map sd#FFFF00
			map 1008000
			map 000000
			map #FeF0000
       */
      public void mapToJson(){
    	  Map<String, String> colours = new HashMap<String, String>();
          colours.put("BLACK", "000000");
          colours.put("RED", "#FeF0000");
          colours.put("GREEN", "1008000");
          colours.put("BLUE", "0000FF");
          colours.put("YELLOW", "sd#FFFF00");
          colours.put("WHITE", "5454#FFFFFF");
          String str = gson.toJson(colours);
          System.out.println(str);
          Type type = new TypeToken<Map<String,String>>() {}.getType();
          Map<String,String> map = gson.fromJson(str, type);
          for(String key:map.keySet()){
        	  System.out.println("map " + map.get(key));
          }
      }
      @Test 
      /**
       * {"name":"Bob","address":"Baa St"}
         Bob
       */
      public void stuClass(){
    	  Student b = new Student("Bob", "Baa St", null);//对一个类的属性进行转成json串  
    	  String str = gson.toJson(b);
    	  System.out.println(str);
    	  Student stu = gson.fromJson(str, Student.class);//把json转成java对象
    	  System.out.println(stu.getName());
      }
}

Student类

代码语言:javascript
复制
package gson;
import java.util.Date;

public class Student {
    private String name;
    private String address;
    private Date dateOfBirth;

    public Student() {
    }

    public Student(String name, String address, Date dateOfBirth) {
        this.name = name;
        this.address = address;
        this.dateOfBirth = dateOfBirth;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Date getDateOfBirth() {
        return dateOfBirth;
    }

    public void setDateOfBirth(Date dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年05月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档