FastJson中@JSONField注解使用
发布日期:2021-05-04 16:20:18 浏览次数:18 分类:技术文章

本文共 2242 字,大约阅读时间需要 7 分钟。

FastJson中@JSONField注解使用

我们通常使用json格式在服务器之间进行数据传输。

如果json格式数据不符合Java中的标准驼峰式变量定义规则,并且难以理解,这个时候就需要在后台中做二次处理,将数据处理成我们系统中定义的格式。

由于json中的key与bean中的属性不能匹配,通常的转换会出现了部分属性为null的情况。

这种情况,我们可以使用@JSONField。

@JSONField的作用对象:

  1. Field
  2. Setter 和 Getter方法

注:FastJson在进行操作时,是根据getter和setter的方法进行的,并不是依据Field进行。

代码示例:

@JSONField(name = "reason_clear_time", format = "yyyy-MM-dd HH:mm:ss.S")    public void setReasonClearTime(Date reasonClearTime) {        this.reasonClearTime = reasonClearTime;    }

我们的 POJO 属性字段是reasonClearTime,但是我们需要解析的 json 字符串中的 key 是reason_clear_time, 我们通过使用

@JSONField(name = "reason_clear_time", format = "yyyy-MM-dd HH:mm:ss.S")

实现了映射。

另外,format是数据解析的格式。也就是说,reason_clear_time字段的字符串格式是:

2017-09-01 09:47:57.1

转换成 Date 类型。

json字符串解析代码:

public void job() {        String json = PmHitchClient.queryHitchOnline();        List
list = null; try { list = JSON.parseArray(json, Hitch.class); logger.info("PmHitchList ===> {}", list); if (null != list && list.size() > 0) { for (Hitch h : list) { setGroupDate(h); hitchService.save(h); } } } catch (Exception e) { e.printStackTrace(); } } private void setGroupDate(Hitch h) { String groupDate = "W1 2000-01"; Date catchTime = h.getCatchTime(); String yearMonth = new SimpleDateFormat("yyyy-MM").format(catchTime); Calendar calendar = Calendar.getInstance(); calendar.setTime(catchTime); int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH); groupDate = "W" + weekOfMonth + " " + yearMonth; h.setGroupDate(groupDate); }

根据某个字段进行增量更新的代码

@Servicepublic class HitchServiceImpl implements HitchService{    @Autowired    HitchMapper hitchMapper;    @Override    public void save(Hitch record) {        Long hid = record.getHitchId();        if(null!=hid) {            Hitch hitch = hitchMapper.selectByHitchId(hid);            record.setId(hitch.getId());            if (hitch != null) { // 如果该hitch_id 存在记录,更新之                hitchMapper.updateByPrimaryKeySelective(record);            } else {                hitchMapper.insertSelective(record);            }        }    }}
上一篇:MySQL DATE_FORMAT() 函数
下一篇:Kotlin 简单优雅的高阶函数

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月11日 16时57分53秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【分层图最短路】P4568 [JLOI2011]飞行路线 2019-03-03
【最短路】P4408 [NOI2003]逃学的小孩 2019-03-03
2020C证(安全员)模拟考试题及C证(安全员)模拟考试系统 2019-03-03
2020A证(安全员)模拟考试及A证(安全员)证考试 2019-03-03
2020电工(初级)考试及电工(初级)考试软件 2019-03-03
2020建筑电工(建筑特殊工种)实操考试视频及建筑电工(建筑特殊工种)作业模拟考试 2019-03-03
2020N1叉车司机模拟考试题库及N1叉车司机复审模拟考试 2019-03-03
2020熔化焊接与热切割考试及熔化焊接与热切割考试题库 2019-03-03
2020年G3锅炉水处理报名考试及G3锅炉水处理考试申请表 2019-03-03
2020年制冷与空调设备运行操作答案解析及制冷与空调设备运行操作考试总结 2019-03-03
2020年保育员(初级)考试资料及保育员(初级)新版试题 2019-03-03
2020年茶艺师(高级)考试内容及茶艺师(高级)考试申请表 2019-03-03
2021年烟花爆竹经营单位安全管理人员考试及烟花爆竹经营单位安全管理人员考试试卷 2019-03-03
2021年过氧化工艺试题及答案及过氧化工艺考试平台 2019-03-03
2021年重氮化工艺考试题库及重氮化工艺考试报名 2019-03-03
2021年车工(高级)考试总结及车工(高级)试题及答案 2019-03-03
2021年压力焊证考试及压力焊实操考试视频 2019-03-03
2021年低压电工考试及低压电工考试申请表 2019-03-03
2021年低压电工考试及低压电工考试申请表 2019-03-03
2021年A特种设备相关管理(电梯)考试APP及A特种设备相关管理(电梯)复审考试 2019-03-03