Gson的使用

测试的pojo

public class User{
public String name;
public int age;
public Date date;
}

需求

1.当pojo类中有int类型,但是前端获得的json数据为age为空的情况下

String json="{\"name\":\"zhangsan\",\"age\":\"\"}";
Gson gson=new GsonBuilder().registerTypeAdapter(int.class, new JsonDeserializer<Integer>() {

            public Integer deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
                    throws JsonParseException {
                try {
                    return json.getAsInt();
                } catch (Exception e) {
                    return 0;
                }
            }
        }).create();
User user=gson.fromJson(json, User.class);
System.out.println(user.age);

2.序列化时为null值的输出

User user=new User("zhangsan",60);
Gson gson=new GsonBuilder.serializeNulls().create();
System.out.println(json.toJson(user));

3.有时间参数序列化时格式化输出

User user=new User();
user.date=new Date();
Gson gson=new GsonBuilder.setDateFormat("yyyy-MM-dd").create();
System.out.println(gson.toJson(user));

4.注解@SerializedName
为user类中的age添加

@SerializedName ("myAge")
public int age;

之后输出Json数据

User user=new User();
user.age=10;
Gson gson=new Gson();
System.out.println(gson.toJson(user));

5.jsonBuilder配合@Expose,pojo添加这个标签标示支持序列化和反序列化

User user=new User("zhangsan", 20);
user.date=new Date();
Gson gson=new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
System.out.println(gson.toJson(user));

pojo类中为

@Expose public String name

观察结果发现只输出了name:zhangsan。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于json,gson是最常用到的一个库。平常使用时我通常使用Gson gson = new Gson();的方式...
    黑泥卡阅读 13,499评论 1 14
  • Gson是一个可用于将Java对象转换为JSON表示形式的Java库。也可用于将JSON字符串转换为等效的Java...
    毕丙伟阅读 6,004评论 0 1
  • 1.注解插件ButterKnife Zelezny的使用与安装 1.1.下载安装 Settings——>Plugi...
    魏成阅读 3,318评论 0 0
  • 1:toJson的用法(当参数是bean对象时,将javabean转换为json数据) bean文件为: 2:to...
    名字_都被占了阅读 3,964评论 0 0
  • 读书?读什么书,第一。读经典第二读小说,第三读人物传记读书一定要善于思考,写总结,写读书笔记。
    梁金辉阅读 1,742评论 0 0

友情链接更多精彩内容