精华内容
下载资源
问答
  • 一、fastjson日期转换配置 1、通过maven引入相应的fastjson包 <!-- fastjson 日期转换 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId>...

    一、fastjson日期转换配置
    1、通过maven引入相应的fastjson包

    <!-- fastjson 日期转换 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.58</version>
    </dependency>
    

    2、spring-mvc.xml的配置《显示日期格式:“yyyy-MM-dd HH:mm:ss”》

    <mvc:message-converters register-defaults="true">    
        <!-- fastjson  日期住转换-->
        <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>text/html;charset=UTF-8</value>
                    <value>application/json</value>
                    <value>application/xml;charset=UTF-8</value>
                </list>
            </property>
            <property name="features">
                <list>
                    <!-- 默认的意思就是不配置这个属性,配置了就不是默认了 -->
                    <!-- 是否输出值为null的字段 ,默认是false-->
                    <value>WriteMapNullValue</value>
                    <value>WriteNullNumberAsZero</value>
                    <value>WriteNullListAsEmpty</value>
                    <value>WriteNullStringAsEmpty</value>
                    <value>WriteNullBooleanAsFalse</value>
                    <value>WriteDateUseDateFormat</value>
                </list>
            </property>
        </bean>
    </mvc:message-converters>
    

    3、显示格式《“yyyy-MM-dd”》需要去实体类添加注释

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//接收页面传来的时间格式
    @JSONField(format = "yyyy-MM-dd")//注解只影响对应下面的一个字段
    private Date createTime;
    
    展开全文
  • } } 但是这种方式配置的是全局的,在新项目中我们可以这样配置,但是如果是旧项目,修改全局配置肯定会有影响,一般我们就可以自定义一个编码器,由于我springboot项目中设置的序列化方式为fastjson,所以我只需要...

    spirngboot 中有时候需要将时间类型比如 LocalDateTimeDate 返回给前端,但是一般会和前端约定好转换为时间戳给前端。正常来说使用全局配置,统一转换,比如重写一个DateConverter

    @Component
    public class DateConverter implements Converter<String, Date> {
    
        private static final String dateFormat = "yyyy-MM-dd HH:mm:ss";
        private static final String shortDateFormat = "yyyy-MM-dd";
        private static final String timeStampFormat = "^\\d+$";
    
        private static final String hDateFormat = "yyyy年MM月dd日 HH:mm:ss";
        private static final String hshortDateFormat = "yyyy年MM月dd日";
    
        @Override
        public Date convert(String value) {
    
            if (StringUtils.isEmpty(value)) {
                return null;
            }
            value = value.trim();
            try {
                if (value.contains("-")) {
                    SimpleDateFormat formatter;
                    if (value.contains(":")) {
                        formatter = new SimpleDateFormat(dateFormat);
                    } else {
                        formatter = new SimpleDateFormat(shortDateFormat);
                    }
                    return formatter.parse(value);
                } else if (value.matches(timeStampFormat)) {
                    Long lDate = new Long(value);
                    return new Date(lDate);
                } else if (value.contains("年")) {
                    SimpleDateFormat formatter;
                    if (value.contains(":")) {
                        formatter = new SimpleDateFormat(hDateFormat);
                    } else {
                        formatter = new SimpleDateFormat(hshortDateFormat);
                    }
    
                    return formatter.parse(value);
                }
            } catch (Exception e) {
                throw new RuntimeException(String.format("parser %s to Date fail", value));
            }
            throw new RuntimeException(String.format("parser %s to Date fail", value));
        }
    }
    

    但是这种方式配置的是全局的,在新项目中我们可以这样配置,但是如果是旧项目,修改全局配置肯定会有影响,一般我们就可以自定义一个编码器,由于我springboot项目中设置的序列化方式为fastjson,所以我只需要实现ObjectSerializer即可

    public class LocalDateTimeSerializer implements ObjectSerializer {
        @Override
        public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) {
    
            if (object != null) {
                if (object instanceof LocalDateTime) {
                    LocalDateTime localDateTime = (LocalDateTime) object;
                    //将localDateTime转换为中国区(+8)时间戳。
                    serializer.write(localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli());
                    return;
                }
                if (object instanceof Date) {
                    serializer.write(DateUtils.toUnix((Date) object));
                    return;
                }
                throw new RuntimeException("date type exception");
            } else {
                serializer.out.writeNull();
            }
        }
    }
    

    使用也是非常简单

    	@JSONField(serializeUsing = LocalDateTimeSerializer.class)
        private LocalDateTime updateTime;
    

    这样就能自动将LocalDateTime返回给前端转换为时间戳

    展开全文
  • fastjson 时间注解 @JSONField

    千次阅读 2019-03-11 10:47:55
    我是用的json的alibaba的fastjson。 可以再entity实体类的属性加上@JSONField注解。我是ssm mybatis框架 private String md5HexParam;// 关系图md5Hex值 private String progress; // 关系图执行状态 ...

     之前ssm项目里面 的时间和和前端交互的时候会变成long类型时间。

    我是用的json的alibaba的fastjson。

    可以再entity实体类的属性加上@JSONField注解。我是ssm  mybatis框架

     

     

    private String md5HexParam;// 关系图md5Hex值
    	private String progress; // 关系图执行状态
    
    	private String tablename; // 数据源名字
    	private String tableid; // 数据源id
    	private String target; // 目标号码
    	private String progresstype;// 任务类型
    	private String progressrate;// 任务进度百分比
    
    	@JSONField(format = "yyyy-MM-dd HH:mm:ss") // FastJson包使用注解
    	private Date createtime;
    
    	public String getMd5HexParam() {
    		return md5HexParam;
    	}
    
    	public void setMd5HexParam(String md5HexParam) {
    		this.md5HexParam = md5HexParam;
    	}
    
    	public String getProgress() {
    		return progress;
    	}
    
    	public void setProgress(String progress) {
    		this.progress = progress;
    	}
    
    	public String getTablename() {
    		return tablename;
    	}
    
    	public void setTablename(String tablename) {
    		this.tablename = tablename;
    	}
    
    	public String getTableid() {
    		return tableid;
    	}
    
    	public void setTableid(String tableid) {
    		this.tableid = tableid;
    	}
    
    	public String getTarget() {
    		return target;
    	}
    
    	public void setTarget(String target) {
    		this.target = target;
    	}
    
    	public String getProgresstype() {
    		return progresstype;
    	}
    
    	public void setProgresstype(String progresstype) {
    		this.progresstype = progresstype;
    	}
    
    	public String getProgressrate() {
    		return progressrate;
    	}
    
    	public void setProgressrate(String progressrate) {
    		this.progressrate = progressrate;
    	}
    
    	public Date getCreatetime() {
    		return createtime;
    	}
    
    	public void setCreatetime(Date createtime) {
    		this.createtime = createtime;
    	}
    
    	@Override
    	public String toString() {
    		return "HistoryTrackProgress [md5HexParam=" + md5HexParam + ", progress=" + progress + ", tablename="
    				+ tablename + ", tableid=" + tableid + ", target=" + target + ", progresstype=" + progresstype
    				+ ", progressrate=" + progressrate + ", createtime=" + createtime + "]";
    	}

     

    展开全文
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学...

    pom文件中添加依赖

    <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>fastjson</artifactId>
       <version>1.2.47</version>
    </dependency>
    

    使用@JSONField可以格式化时间,例如:(yyyy-MM-dd ,yyyy-MM-dd HH:mm)

    @JSONField(format = "yyyy-MM-dd")
    private Date time;
    

    解决fastjson乱码问题

    List<MediaType> fastMediaTypes = new ArrayList<MediaType>();
            fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
            fastConverter.setSupportedMediaTypes(fastMediaTypes);
    

    遍历json串的节点

    for (int i = 0; i < jsonArray.size(); i++) {			
    			JSONObject item =  jsonArray.getJSONObject(i);
    			if (item != null) {
    			//获取domainMetaList节点
    				JSONArray jsonArray1 = item.getJSONArray("domainMetaList");
    			//获取domainMetaList节点下数组第二个元素
    				JSONObject obj5 =jsonArray1.getJSONObject(1);
    				if(obj5 == null) {
    					continue;
    				}	
    			//获取resultList节点		
         			JSONArray jsonArray2 = obj5.getJSONArray("resultList");  
         		//获取resultList节点下数组第一个元素				
         			JSONObject obj7= jsonArray2.getJSONObject(0);
    				if(obj7 == null) {
    					continue;
    				}
         			String value = obj7.getString("value");    			    			   		
    				String wz = item.getString("url");
            		DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
            		Date date = null;    
            		try {
            		//日期格式
    					date = format1.parse(item.getString("publishedTimeStr"));
    				} catch (ParseException e) {
    					e.printStackTrace();
    				}       		
    

    只对单独返回实体起作用,(如果不加@JsonFormat,Date类型的字段会返回long型)

    @JsonFormat(pattern="yyyy-MM-dd&nbsp;HH:mm:ss",timezone="GMT+8")
    private Date time;
    
    展开全文
  • FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); // 2.添加fastJson的配置信息,比如,是否需要格式化返回的json数据 FastJsonConfig fastJsonConfig = new FastJsonConfig(); ...
  • 定义日期为时分秒的,结果由于fastjson统一为指定格式,结果指定字段的时分秒失效不起作用 @JSONField(format = “HH:mm:ss”) public Time getPlayStartTime() { return playStartTime; } @Configuration public ...
  • fastjson处理日期类型数据的序列化

    千次阅读 2019-02-22 16:53:20
    fastjson序列化日期类型数据出现问题解决方案
  • FastJson 注解格式化实体类日期属性

    千次阅读 2018-09-26 11:32:05
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // FastJson 解析传过来的字符串时会打乱数据的顺序解决办法 JSONObject.parseObject(str,Feature.OrderedField)
  • FastJson学习之注解

    万次阅读 2018-01-27 21:37:21
    当前端传过JSON时间字符串的想转成Date,或者想指定转成JSON字符串日期的格式时,就可以用到这个注解 @JSONField(serialize = 布尔类型) 是否要把这个字段序列化成JSON字符串,默认是true ...
  • FastJson日期转化格式之多种配置方式 FastJson默认的其转换格式未yyyy-MM-dd HH:mm:ss,但是在实际开发中,有时对于日期的输出格式还是以年月日(yyyy-MM-dd)居多,那么我们想要配置成这样的日期格式(yyyy-MM-dd...
  • 1、导入依赖 <dependency> <groupId>.../groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> 2、在application.yml中
  • SpringMVC+FastJson 自定义日期转换器

    千次阅读 2016-05-29 10:38:41
    对于有的时候要输出日期格式为yyyy-MM-dd,而有的时候要输出yyyy-MM-dd hh:mm:ss时怎么办...第一种方案:纯注解式, 对日期类型的字段进行注解 @JSONField(format = "yyyy-MM-dd") private Date updateDate;
  • Fastjson

    2018-12-25 08:55:58
    Fastjson 简介 Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。 Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。 Fastjson ...
  • SpringMVC4.1+FastJson 自定义日期转换器

    千次阅读 2017-03-02 14:11:27
    摘要: SpringMVC+FastJson组合的时候输出Date日期的时候默认是输出时间戳,对于有的时候要输出日期格式为yyyy-MM-dd,而有的时候要输出yyyy-MM-dd hh:mm:ss时怎么办? 对于有的时候要输出日期格式为yyyy-MM-...
  • FastJSON

    2020-05-26 14:43:16
    Fastjson 工具Fastjson 简介Fastjson 特性下载和使用将 Java 对象转换为 JSON 格式@JSONFieldFastJson 还支持 BeanToArray 序列化功能: Fastjson 简介 ,Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON ...
  • fastjson

    2016-07-11 10:02:19
    java fastjson
  • Fastjson @JsonField注解使用

    千次阅读 2018-12-24 22:00:28
    【引言】 在开发中,不论是前后端联调,还是与第三方对接,有时候难免会遇到传的json数据中的key值与自己后端定义的实体字段不一致的情况,也有时候会...JsonField注解是阿里开发的fastjson中的注解,源代码如下:...
  • FastJson

    2020-12-15 17:00:16
    一、什么是FastJson Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。 二、使用方式 1、添加依赖 <dependency> <groupId>com.alibaba</...
  • // 序列化和反序列化时的数据格式(日期格式、16进制等等),等价于jackson的@JsonFormat.shape() + @JsonFormat.pattern() String format() default ""; // 字段是否序列化,等价于jackson的@JsonProperty.access...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,727
精华内容 1,490
关键字:

fastjson日期注解