fastjson反序列化formate时间等特殊格式处理,@JSONField的name属性首字母为大转JSON后变小写处理

背景

今天在实际编码过程中碰到一个问题,需要将实体格式化转为JSON,然后再将JSON反序列化为数据库对象存储到数据库中。@JSONField注解用的不亦乐乎,然后测试的时候悲剧了,JSON换格式要求为“yyyyMMddHHmmss”,那么果断“@JSONField(name = “xxxxxxx”, format = “yyyyMMddHHmmss”)”。当将转换的JSON对方反序列化发现时间格式字段无法反序列化并报错。网上各种找资料发现阿里的fastjson反序列化并不支持format。心里一万头草泥马奔过。没办法别人不提供咱自己弄吧(网上的感觉都不那么靠谱),亲测有效,如有性能等高要求的请略过。

注如果需要实现多级嵌套实体JSON间转换,请自行改造递归,此处不提供

序第二个问题当@JSONField的name属性首字母为大写,同时实体使用lombok的@data、@get、@set(不愿意写get、set,也就是@JSONField直接写在属性上而不是写在get方法上)测试转换为JSON对象时首字母变小写了。

干货-代码

问题一代码

public static <T> T JosnToObject(String json, Class<T> clazz) {
        JSONObject jsonObject = JSON.parseObject(json);
        Field[] fields = clazz.getDeclaredFields();
        for (Field field : fields) {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值