java实体:
package com.hundsun.amos.basics.api.bean; import java.io.Serializable; import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; /** * * @Description: 通告信息导出excel表dto * @author: caigb28355 * @createTime: 2019年11月13日F * @version: */ @Data public class NoticeInfoExcelDTO implements Serializable { /** * 序列号 */ private static final long serialVersionUID = -2086685169844189801L; /** * 通告ID */ private String noticeId; /** * 通告标题 */ @JSONField(ordinal = 1) private String noticeTitle; /** * 通告类型 (1、产品类;2、运营服务类;3、公司发文;4、内部通知;5、其他;6、投资人通告) */ private String noticeType; /** * 通告级别 (1、紧急;2、重要;3、普通) */ private String noticeLevel; /** * 通告群体 (通告群体 2、广发证券用户;4、部分角色) */ private String noticeColony; /** * 生效日期(默认为创建日期) */ private String noticeBegdate; /** * 截止日期(为空则认为永久有效) */ @JSONField(ordinal = 9) private String noticeEnddate; /** * 文件编号 */ @JSONField(ordinal = 6) private String noticeFileCode; /** * 通告内容 */ private String noticeContent; /** * 通告状态(1、未发布;2、已发布;3、已撤销) */ private String noticeStatus; /** * 强制通知标记(0、否;1、是) */ private String pushNotification; /** * 发布人 */ private String publishUser; /** * 发布时间 */ @JSONField(ordinal = 8) private String publishTime; /** * 创建人 */ private String creator; /** * 创建时间 */ private String createrTime; /** * 操作人 */ private String operator; /** * 操作人 */ @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private String operateTime; /** * 已阅读人数 */ @JSONField(ordinal = 10) private String noticeReadNum; /** * 发布人姓名 */ @JSONField(ordinal = 7) private String publishUserName; /** * 通告类型名称 */ @JSONField(ordinal = 4) private String noticeTypeName; /** * 通告级别名称 */ @JSONField(ordinal = 3) private String noticeLevelName; /** * 通告群体名称 */ @JSONField(ordinal = 2) private String noticeColonyName; /** * 通告状态名称 */ @JSONField(ordinal = 5) private String noticeStatusName; /** * 当前登陆人用户ID */ private String userId; /** * 是否已读 */ private String isReadFlag; /** * 是否已读名称 */ private String isReadFlagName; /** * 标题名字 */ @JSONField(serialize = false) private String titleName; }
实现类:
// Object转换为HashMap用法,并且为了有序性使用LinkedHashMap,按照@JSONField(ordinal = 1)排序 LinkedHashMap<String, String> linkMap = JSON.parseObject(JSON.toJSONString(input.getParam()), LinkedHashMap.class, 1, Feature.OrderedField);
注意:
@JSONField(serialize = false)表示在序列化之后将不会有这个属性存在