Gson简单教程

写在最前

前面一片文章介绍了Jsckson的使用,这篇介绍一下Gson的使用

Gson

  1. 引入依赖,我这用最新的版本
<dependency>
	<groupId>com.google.code.gson</groupId>
	<artifactId>gson</artifactId>
	<version>2.8.6</version>
</dependency>

在引入依赖的时候,出现了问题,一直提示程序包com.google.gson不存在, 能正常引入类,就是run的时候不行,很纠结,网上的解决办法都是复制粘贴别人的,解决不了。我分享一下我的解决方法 :
idea左上角 File 菜单, 然后看图点击 ,清理idea的环境并且重启, 重启以后 右键项目 Maven - Reimport 就可以了
打开idea菜单

  1. JAVA对象转换JSON toJson
Gson gson = new Gson();
Example example = new Example("blue","abc");
//java对象转换为json字符串
String json = gson.toJson(example);
System.out.println(json);

{“color”:“blue”,“value”:“abc”}

  1. JSON字符串转换为JAVA对象 fromJson
Gson gson = new Gson();
// json字符串转换java对象
String json = "{'value' : 'csdn' , 'color' : '#000000'}";
Object object = gson.fromJson(json, Example.class);
System.out.println(object);

Example(color=#000000, value=csdn)

如果你的JSON字符串较长,那么他的格式将显得非常的乱,你可以指定让他更美化的输出

Gson gson = new GsonBuilder().setPrettyPrinting().create();
Example example = new Example("blue","abc");
String json = gson.toJson(example);
System.out.println(json);

{
“color”: “blue”,
“value”: “abc”
}

当然你也可以用一些在线的工具来完成这个工作 JSON格式化

  1. 忽略字段

    a. excludeFieldsWithModifiers

    默认情况下,transient和static字段将被排除.
  • 只忽略static
new GsonBuilder()
            .excludeFieldsWithModifiers(Modifier.STATIC)
            .create();
  • 忽略static和transient
new GsonBuilder()
            .excludeFieldsWithModifiers(Modifier.STATIC, Modifier.TRANSIENT)
            .create();
  • 默认方法excludeFieldsWithModifiers忽略static和transient

  • transient简单学习

    b. @Expose

    @Expose可以自定义哪些字段被排除
new GsonBuilder()
            .excludeFieldsWithoutExposeAnnotation()
            .create();
@Expose(serialize = true, deserialize = true)
    private String color;
    private String value;

{“color”:“blue”}

  1. 显示null
    默认情况下,null对象是被忽略掉的
Gson gson = new GsonBuilder().serializeNulls().create();
Example example = new Example("blue",null);
String json = gson.toJson(example);
System.out.println(json);

{“color”:“blue”,“value”:null}

  1. 对集合的操作
  • java.util.List
Gson gson = new Gson();
String jsonList = "[{\"color\":\"red\",\"value\":\"abc\"}, {\"color\":\"blue\",\"value\":\"kk\"}]";
List<Example> data = gson.fromJson(jsonList, new TypeToken<List<Example>>() {}.getType());
data.forEach( item -> {
    System.out.println(item);
});

Example(color=red, value=abc)
Example(color=blue, value=kk)

  • java.util.Map
Gson gson = new Gson();
String jsonMap = "{\"color\":\"red\",\"value\":\"abc\"}";
Map<String, Object> map = gson.fromJson(jsonMap, new TypeToken<Map<String, Object>>() {}.getType());
map.forEach((x, y) -> System.out.println( x + " " + y));

color red
value abc

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值