Gson 配置解析
之前项目用到了gson对json和Java类之间互转,现在将gson的配置总结一下。
首先,创建gson对象之间,建立gsonbuilder对象,并配置
// 不导出实体类中没有用@Expose注解的属性
gbuilder.excludeFieldsWithoutExposeAnnotation()
// 支持Map的key为复杂对象的形式
gbuilder.enableComplexMapKeySerialization()
// 格式化date型
gbuilder.setDateFormat("yyyy-MM-dd HH:mm:ss:SSS")
// 会把字段首字母大写,注:对于实体上使用了@SerializedName注解的不会生效.
gbuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
// 设置字段屏蔽,屏蔽不想转换的字段,ExList是String型的数组,设置此属性时@Expose注解就失效了
gbuilder.setExclusionStrategies(new mExclusionStrategy(ExList))
gson转化:
// 将JavaBean字符串转换为 JSON
String sUser = gson.toJson(user);
System.out.println(sUser);
// {"id":1001,"name":"张三"}
// 将JSON字符串转换为 JavaBean
UserBean user2 = gson.fromJson(sUser, UserBean.class);
System.out.println(user2.getId() + ", " + user2.getName());
// 1001, 张三
注意:在gson转化的时候,若存在级联的实体类,在输出的时候要在hbm配置文件设置lazy=false
Gson 配置解析的更多相关文章
- Gson全解析(中)-TypeAdapter的使用
TypeAdapter介绍 前面的Gson全解析(上)中我们理解并分别运用了JsonSerializer和JsonDeserializer进行JSON和java实体类之间的相互转化.这里利用TypeA ...
- Gson全解析(下)-Gson性能分析
前言 在之前的学习中,我们在Gson全解析(上)Gson使用的基础到分别运用了JsonSerializer和JsonDeserializer进行JSON和java实体类之间的相互转化. 在Gson全解 ...
- Gson全解析(上)-Gson基础
前言 最近在研究Retrofit中使用的Gson的时候,发现对Gson的一些深层次的概念和使用比较模糊,所以这里做一个知识点的归纳整理. Gson(又称Google Gson)是Google公司发布的 ...
- NGINX(四)配置解析
前言 nginx配置解析是在初始化ngx_cycle_t数据结构时,首先解析core模块,然后core模块依次解析自己的子模块. 配置解析过程 nginx调用ngx_conf_parse函数进行配置文 ...
- Json,Gson,FastJson解析笔记
Json,Gson,FastJson解析笔记 1.将JavaBean转换成Json对象: public static String CreatJsonFromObject(Object key,Obj ...
- 使用Google 的 gson方式解析json
gson支持解析的类型还是比较全面的,包括JavaBean,List<JavaBean>,List<String>,Map等,使用起来也是比较方便,下面根据代码示例给出总结: ...
- nsq源码阅读笔记之nsqd(一)——nsqd的配置解析和初始化
配置解析 nsqd的主函数位于apps/nsqd.go中的main函数 首先main函数调用nsqFlagset和Parse进行命令行参数集初始化, 然后判断version参数是否存在,若存在,则打印 ...
- configparser_配置解析器
configparser:配置解析器 import configparser config = configparser.ConfigParser() #配置文件 config[', 'Compres ...
- spring+mybaits xml配置解析----转
一.项目中spring+mybaits xml配置解析 一般我们会在datasource.xml中进行如下配置,但是其中每个配置项原理和用途是什么,并不是那么清楚,如果不清楚的话,在使用时候就很有可能 ...
随机推荐
- 阿里云ESC上面部署项目
注意:我这里的服务器是Windows系统,后面会研究Linux下的命令 1.将javaWEB项目打包为war包 右击项目,先择“Export ” 2.通过“附件”->“远程连接桌面”,连接到服务 ...
- window下TortoiseGit的安装和使用
一.安装git for windows 首先下载git for windows客户端https://git-for-windows.github.io/安装过程没什么特别的,下载完安装包之后,按照提示 ...
- hdu 3625 Examining the Rooms——第一类斯特林数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3625 n^2 求斯特林数就行.要减去的就是1号钥匙在1号房间的方案,即 s[ n-1 ][ m-1] . ...
- 生产环境连接数据库失败:Cannot create PoolableConnectionFactory❨Got mins one from a read call❩
生产环境发现有接口调不通,而且集中在两个节点,其他节点都没问题.抓取日志发现报错如下: Context initialization failed. org.springframework. bean ...
- android中MediaPlayer类的用法
用法直接看sample package com.turtle920.androidaudioprocess; import android.media.MediaPlayer; import andr ...
- fragment在水平/垂直时的应用
直接看代码 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedIns ...
- aop log切面
@Aspect:描述一个切面类,定义切面类的时候需要打上这个注解 @Component:spring-boot配置类 package com.*.*.tools; import org.aspectj ...
- Redhat下 Apache, php, mysql的默认安装路径
apache: 如果采用RPM包安装,安装路径应在 /etc/httpd目录下 apache配置文件:/etc/httpd/conf/httpd.conf Apache模块路径:/usr/sbin/a ...
- php中的continue用法
continue 2 表示跳出两层 continue 默认跳出一层 if (count($content_arr) > 0 ) { // 获取相应的goods数据 $goodsdata = ar ...
- python中常用模块详解一
1.time 模块 import time s = time.localtime() # 把时间转化成格式化的时间,通过. 取得里面的年月日等 struct_time 格式 time.struct_t ...