GSON的使用

Posted 爸爸去哪了2之熊猫三胞胎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GSON的使用相关的知识,希望对你有一定的参考价值。

import java.util.List;
import org.junit.Test;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;


/** 
* @ClassName: GsonTest 
* @Description: 主要使用Gson来进行对数据的处理
* @author fangzewen
* @date Dec 23, 2017 3:09:31 PM 
*  
*/
public class GsonTest 

/** 
* Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法,
* 前者实现反序列化,后者实现了序列化。同时每个方法都提供了重载方法,
* 我常用的总共有5个。
* @Title: A 
* @Description: 基本数据类型的解析 
* @param     设定文件 
* @return void    返回类型 
* @throws 
*/
    @Test
    public void A()
        Gson gson=new Gson();
        int i=gson.fromJson("100", int.class);
        System.out.println(i);

        double d=gson.fromJson("99.99", double.class);
        System.out.println(d);

        boolean b=gson.fromJson("true", boolean.class);
        System.out.println(b);

        String s=gson.fromJson("lalala", String.class);
        System.out.println(s);

        String jsonNumber=gson.toJson(100);
        System.out.println(jsonNumber);

        String jsonBoolean=gson.toJson(false);
        System.out.println(jsonBoolean);
        String jsonString=gson.toJson("StringAdd");
        System.out.println(jsonString);

        String jsonDoolean=gson.toJson(33.23);
        System.out.println(jsonDoolean);

        String jsonUserString = "\\"name\\":\\"怪盗kidou\\",\\"age\\":24,\\"email_address\\":\\"gson@163.com\\"";
        User user = gson.fromJson(jsonUserString, User.class);
        System.out.println(user.getEmailAddress());

        User user1 =new User("name",24,"name@163.com");
        String jsonObject=gson.toJson(user1);
        System.out.println(jsonObject);

    

    /** 
    * @Title: B 
    * @Description: Gson中使用泛型 
    * @param     设定文件 
    * @return void    返回类型 
    * @throws 饱醉豚哥哥
    */
    @Test
    public void B()
        Gson gson =new Gson();
        String jsonArray= "[\\"android\\",\\"Java\\",\\"php\\"]";
        String[] strings=gson.fromJson(jsonArray, String[].class);
        List<String> stringList = gson.fromJson(jsonArray, new TypeToken<List<String>>() .getType());
    


    @Test
    public void C()
        Gson gson = new Gson();
        User user = new User("kidou",24,"ikidou@163.com");
        System.out.println(gson.toJson(user)); // 写到控制台
    

    /** 
    * @Title: D 
    * @Description: 使用GsonBuilder导出null值、格式化输出、日期时间
    * @param     设定文件 
    * @return void    返回类型 
    * @throws 
    */
    @Test
    public void D()
        Gson gson =new GsonBuilder().serializeNulls().create();
        User user = new User("kidou",24);
        System.out.println(gson.toJson(user));

        Gson gson1=new GsonBuilder()
        .serializeNulls()
        .setDateFormat("yyyy-MM-dd")
        .disableInnerClassSerialization()
        .generateNonExecutableJson()
        .disablehtmlEscaping()
        .setPrettyPrinting()
        .create();
    




以上是关于GSON的使用的主要内容,如果未能解决你的问题,请参考以下文章

你真的会用Gson吗?Gson使用指南

GSON的使用

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

你真的会用Gson吗?Gson使用指南

Java使用 gson 解析出现的错误

Android之GSON的使用