Json使用之GJson

Posted 嗨小叔的程序猿之路

tags:

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

    前面已经讲解了JSON的三种使用方法、、。

    GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。

一、Gson初始化

    1、使用 Gson gson = new Gson();   

    2、使用 Gson gson = new GsonBuilder().create();

    方式2可以配置多种的配置方式,非常简单使用方式1就可以满足,建议使用方式2初始化。

二、注解标签

  • @SerializedName : JSON的Key值与JavaBean不对应的时候,可以使用这个进行替换。(最高优先级)

  • @Expose :过滤注解,默认是既可以序列化,也可以反序列化。一定要配合Gson gson = new GsonBuilder().excludeFieldWithoutExposeAnnotation().create();使用(默认:@Expose(deserialize = false, serialize = false)) 

    @Expose(deserialize = true, serialize = false):只解析使用,可以反序列化,不可以序列化。  

    @Expose(deserialize = false, serialize = true):可以序列化,不可以反序列化。  

    @Expose(deserialize = false, serialize = true):既可以序列化,也可以反序列化。注:这里的序列化指:将对象转化为json字符串。反序列化指:将json字符串转化成对象。

  • @Since(float v) :结合GsonBuilder().serVersion(n)使用。当n>=v时,才会解析。

  • @Util(float v) :与@Since相反,这次是n<v时才能够解析。

三、项目实战

    1、JavaBean依旧还是Person、Department为例(请参照其他几个例子里面写的),唯一区别如下:

(注:这边主要用于自定义key值,进行转换的时候,转换后的json对应的key为对应的personNo

    2、转换如下所示:

Json使用之GJson(四)

(注:如果涉及到Date日期,需要通过GsonBuilder().setDateFormat("yyyy-MM-dd")设置对应的时间格式)

    还有一个若转换为JSON过程中,需要做字段的映射规则,可使用如下:

Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.IDENTITY).create();//默认

FieldNamingPolicy包含特性(以JavaBean的deptName为例):

  • IDENTITY  : 个性/特性/恒等式;deptName

  • LOWER_CASE_WITH_DASHES  :小写+破折号;dept-name

  • LOWER_CASE_WITH_UNDERSCORES :小写+下划线;dept_name

  • UPPER_CAMEL_CASE :驼峰式+首字母大写;DeptName

  • UPPER_CAMEL_CASE_WITH_SPACES : 驼峰式+空格;Dept Name


3、运行结果






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

使用json-server快速搭建本地数据接口

使用json-server快速搭建本地数据接口

npm install -g json-server 在 mac 上不工作,报错。我该怎么办

JSON数据格式

json-server的使用

我试图通过 npm install -g json-server 来 json-server,但每次我得到一个错误