问题1:
日期类型格式化问题
只需要.setDateFormat("yyyy-MM-dd HH:mm:ss")即可
Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd HH:mm:ss")
.create();
问题2:
String json="{\"code\":2,\"sds\":2.1}";
Gson gson = new GsonBuilder()
.create();
System.out.println(gson.fromJson(json, Map.class));
打印{code=2.0, sds=2.1}
原因
当json字符串转为Map这种不确定的对象时,gson会默认数字类型转为浮点型
解决方法
方法1
自己创建对应类型的对象,并在创建属性时就觉得了对应字段的类型
方法2
使用2.8.9版本的gson
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
String json="{\"code\":2,\"sds\":2.1}";
Gson gson = new GsonBuilder()
.setObjectToNumberStrategy(ToNumberPolicy.LONG_OR_DOUBLE)
.setDateFormat("yyyy-MM-dd HH:mm:ss")
.create();
System.out.println(gson.fromJson(json, Map.class));
打印{code=2, sds=2.1}