@JSONField注解的使用】的更多相关文章

@JSONField 看源码它可以作用于字段和方法上. 引用网上说的, 一.作用Field @JSONField作用在Field时,其name不仅定义了输入key的名称,同时也定义了输出的名称. 但是我在使用中,发现并不如上所说. 例如 @JSONField(name="project_id") private Long ProjectID 发现bean 转json的时候并是"project_id":xxx的形式,json转bean的时候也不会把"proj…
转自:https://blog.csdn.net/suyimin2010/article/details/80617538 导入@JSONField 注解: import com.alibaba.fastjson.annotation.JSONField; 一.常见用法: 1.指定字段的名称 @JSONField(name="role_name") private String roleName; 2.使用format制定日期格式 public class A { // 配置date序…
一.demo代码 @JSONField注解属性字段上与set.get方法上.使用@Data注解(lombok插件安装最下方),对属性“笔名”[pseudonym]手动重写setter/getter方法 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; @Data…
在开发的过程中使用json格式的地方非常多,现在前后端分离的项目中,前后端数据交换的格式一般为json,这种格式的优/缺点这里不再赘述,感兴趣的可以百度.把java中的实体类序列化为json的方式也有很多方式,今天来看看常用到的fastjson. 都知道fastjson是阿里开源的一个序列化/反序列化的jar包,在日常的开发过程中经常会碰到,也是使用频率较高的一款工具. 这里要了解一个概念,那就是序列化/反序列化,序列化是把一个java对象转化为其他的形式,如json.XML.对象字节:反序列化…
最近做项目中,使用了json格式在服务器之间进行数据传输.但是发现json格式数据不符合JAVA中的变量定义规则,并且难以理解,因此需要在后台中做二次处理,将数据处理成我们系统中定义的格式. 思路: 1. 定义需要返回的bean,bean中定义需要返回的数据 2. 获取到需要处理的JSON字符串 3. 将JSON字符串转换为bean, 再将转换后的bean返回给客户端. 由于json中的key与bean中的属性不能匹配,因此在转换过程中出现了部分属性为null的情况.经过查看官方文档,发现可以使…
@JSONField作用:在字段和方法上1.Field:@JSONField作用在Field时,name可以定义输入key的名字,反序列化的时 值不会赋值到属性上2.作用在setter和getter方法上 /** * bean 转json 时会把bean中的name转换为project_name * */ @JSONField(name="project_name") public String getName() { return name; } /** * son 转bean 时会…
FastJson中的注解@JSONField,一般作用在get/set方法上面,常用的使用场景有下面三个: 修改和json字符串的字段映射[name] 格式化数据[format] 过滤掉不需要序列化的字段[serialize] 一.修改字段映射使用方法: private Integer aid; // 实体类序列化为json字符串的时候,此类的aid字段,序列化为json中的testid字段 @JSONField(name="testid") public Integer getAid…
1.实体类 package jsonArrayjsonObject.cn; import java.io.Serializable; import java.util.Date; import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.serializer.SerializerFeature; public class User implements Serializable{ private s…
出现的问题 我全局配置的时间格式是:yyyy-MM-dd HH:mm:ss @JSONField注解配置的时间格式是:yyyy-MM-dd 最终的返回结果是:yyyy-MM-dd HH:mm:ss 问题:为啥不是以注解定义的时间格式为主呢? 先说答案,后面再分析: FastJson的全局配置日期格式会导致@JSONField注解失效 使用建议: 1.若全局配置了日期格式,就不要使用@JSONField注解 2.若想使用@JSONField注解,就不要全局配置日期格式 一.FastJson全局配置…
问题: 在springboot项目中使用@RequestBody注解接收post请求中body里的json参数的情况.即: @RequestMapping(value = "/get-user", method = RequestMethod.POST) public String getUser(@RequestBody User user) { System.out.println("user_name:" + user.getUserName()); retu…
参考博客:http://www.cnblogs.com/yucy/p/9057049.html 1.经常遇到这种情况,传过来json的key名和我们javaBean的属性名不一样,导致接收不到: Child类用来接收传过来的json串: package com.test.dto; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyl…
有些时候,我们在和外部系统交互的时候使用了json作为标准的数据交换格式,同时为了安全性考虑,增加了对报文的校验,因此我们需要确保序列化的时候参数有序且不多不少刚好,因为对外的API不像后台和前端交互一样,兼容即可,而是对严谨性的要求极高.jackson默认的机制是序列化的时候,先父类的属性,然后再是子类的属性按照定义的顺序进行(fastjson则刚好相反,先序列化子类,然后序列化父类).为了使用json的工具类,且达到有序的目的,之前特地研究了fastjson/jackson两者的序列化特性,…
@JSONField 该注解隶属于阿里fastjson,方便fastjson处理对象时的一些操作 源码 @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER }) public @interface JSONField { /** * config encode/decode ordinal * @since 1.1.42 * @retu…
最近在做.net转译成Java.其中遇到一个很蛋疼的问题.以前.net属性名都是首字母大写.造成返回给客户端的JSON字符串属性名称都是首字母大写.为了和前端对接我们以前都是如下图所示做法 public class User { @JSONField(name = "Name") private String name; @JSONField(name = "Age") private BigDecimal age; @JSONField(name = "…
此文来源于:https://blog.51cto.com/xiaok007/2164029 1.作用在FIELD(成员变量上) 注意:1.若属性是私有的,必须有set*方法.否则无法反序列化. package com.zhujie; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; public class User { @JSONField(name="new_us…
问题描述 一个对象(某个字段为枚举类型,为了不采用默认的序列化过程,用@JSONField指定了序列化器和反序列器,过程见旧博文),将其放到JSONArray中再序列化JSONArray对象,用得到的JSON字符串再反序列化时,发现能够正常反序列化出JSONArray,而对JSONArray中的某个元素再反序列化成类对象时,出错. 示例 同样用旧博文的示例做个简单测试. 基本对象类Article. public class Article { private String title; priv…
参考: http://blog.csdn.net/wx_962464/article/details/37612861 maven库下载 fastjson基本使用 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import com.alibaba.…
上次把原生json替换成了fastjson,发生很多地方不兼容,对这个也做了一些总结: 1.对于没有赋值的变量处理,json-lib会根据类型给出相应初始值,而fastjson直接忽略这个字段. 解决方式:转换时传入两个参数:SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty 加入WriteMapNullValue后,这个字段将不会被忽略,但是值是null, 加入WriteNullString…
JavaBean规范中规定boolean的getter/setter 为isXXX/setXXX,包装类Boolean的getter/setter 为getXXX/setXXX,其中XXX为变量名(IDE生成代码默认就是这种格式). 当编写代码出现不规范命名,将boolean 变量声明为isXXX时,为了保证序列化与反序列化,需将isXXX/setXXX改为isIsXXX/setIsXXX,然而IDE并不会为我们做这些. 此时如果使用老版本fastjson进行反序列化时就有可能出现问题,因为fa…
给你一组json数据结构,你把它解析出来到项目中,你会怎么做? // data1 sample { "code" : "1", "msg" : "Success", "data" : { "userid1" : { "name" : "Zhangsan", "sex" : "male" } } } // da…
JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率. Java是面向对象的语言,所以我们更多的在项目中是以对象的形式处理业务的,但是在传输的时候我们却要将对象转换为 JSON 格式便于传输,而且 JSON 格式一般能解析为大多数的对象格式,而不在乎编程语言. 现在主流的对象…
若排版紊乱可查看我的个人博客原文地址 java后台常用json解析工具问题小结 这里不细究造成这些问题的底层原因,只是单纯的描述我碰到的问题及对应的解决方法 jackson将java对象转json字符串字段字母小写问题 在使用springmvc框架作为后台控制层层的框架时,我们都知道当前台发送ajax请求后台要返回一个json字符串时,我们要做3件事 引入jackson相关jar包 springmvc配置文件配置相关json转换配置 Controller层的方法上加上@Response注解,方法…
只需要使用注解"@JsonProperty(value = "pwd")" import com.fasterxml.jackson.annotation.JsonProperty; public class User{ @JsonProperty(value = "pwd") private String password; } 比如上面例子,在作为请求接收Json格式的Body时,Body中有key为"pwd"的属性,但是…
我的开发工具是IntelliJ IDEA,然后在SpringBoot集成Mybatis,前端用模块引擎Thymeleaf的过程中遇到几个问题,不过也花了点时间,现在记录下来,作为笔记记录. Invalid bound statement异常 开发中经常遇到,下面给出我的两种方法 Invalid bound statement (not found): ①Mapepr.xml文件中文nameapce没有和mapper接口发生映射 ②有可能是在IDEA编辑器运行的项目,需要project struc…
下边是整理的一些Java开发的utils,顺便吐槽下新浪博客的编辑器排版跟我写的博客一样 烂,所以改用博客园 一.字符串 1. Java中String与其他类型之间的转换 String与日期对象 public static SimpleDateFormat df1 = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss", Locale.US); public static SimpleDateFormat df2 = new SimpleDateFo…
参考: http://blog.csdn.net/wx_962464/article/details/37612861 maven库下载 fastjson基本样例1 Cat.java package test; class Cat { private String color; public String getColor() { return color; } public void setColor(String color) { this.color = color; } @Overrid…
如果我们想在spring boot中使用第三方的json解析框架: 1)我们需要在pom.xml文件中引入第三方包的依赖; 2)实现方法: 方法1 需要在启动类中继承WebMvcConfigurerAdapter 类,并重写该类的configureMessageConverters方法. 方法2. 我们直接使用@Bean注入第三方的 解析框架. 1.引入fastJson的依赖库 <dependency> <groupId>com.alibaba</groupId> &l…
springBoot,默认使用的json解析框架是Jackson. 虽然jackson能够满足json的解析,如果想使用熟悉的alibaba的fastjon,我们只需要在pom文件中配置maven依赖就好.<!-- fastjson依赖库--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.15&…
一.前言 spring boot默认使用jackson来操作json数据,相比于jackson,fastjson更好用,功能也强大,所以这里记录一下在spring boot中配置使用fastjson的方法. 二.添加依赖 在pom.xml中添加以下依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.…
一.SpringMVC中的中文乱码问题 a:处理全局请求的中文乱码(配置Web.xml的字符编码过滤器) <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <async-supported>true</async…