在数据库和JAVA实体类命名转换过程中,命名不一致是经常发生的问题。fastjson中注解@JSONField帮忙解决了这个问题。
public class RoleData{ @JSONField(name="role_name") private String roleName; @JSONField(name="role_server") private String roleServer; @JSONField(name="role_level") private String roleLevel; @JSONField(name="role_coin") private String roleCoin; public String getRoleName() { return roleName; } public void setRoleName(String roleName) { this.roleName = roleName; } public String getRoleServer() { return roleServer; } public void setRoleServer(String roleServer) { this.roleServer = roleServer; } public String getRoleLevel() { return roleLevel; } public void setRoleLevel(String roleLevel) { this.roleLevel = roleLevel; } public String getRoleCoin() { return roleCoin; } public void setRoleCoin(String roleCoin) { this.roleCoin = roleCoin; } }
可以通过@JSONField制定日期格式
public class A { // 配置date序列化和反序列使用yyyyMMdd日期格式 @JSONField(format="yyyyMMdd") public Date date; }
也可以通过@JSONField指定字段的顺序
public static class VO { @JSONField(ordinal = 3) private int f0; @JSONField(ordinal = 2) private int f1; @JSONField(ordinal = 1) private int f2; }
参考:
https://github.com/alibaba/fastjson/wiki/常见问题
JSONField · alibaba/fastjson Wiki · GitHub
XPath 语法
http://www.w3school.com.cn/xpath/xpath_syntax.asp