电子商务网站建设网上商城,仿励志一生网站整站源码 带数据,阿里云支持wordpress,wordpress关注公众号可见在项目开发过程中#xff0c;会遇到实体类字段名与交互的json对象属性名不一致的情况#xff0c;比如前段使用的是下划线方式定义#xff0c;后端采用的是驼峰式定义#xff0c;其他系统使用t表示一个时间戳#xff0c;自己的系统使用timestamp定义。遇到这种情况#xf…在项目开发过程中会遇到实体类字段名与交互的json对象属性名不一致的情况比如前段使用的是下划线方式定义后端采用的是驼峰式定义其他系统使用t表示一个时间戳自己的系统使用timestamp定义。遇到这种情况我们如果不想调整自己系统的属性名可以通过指定字段序列化和反序列化属性名的方式解决 如果是采用fastjson库
import com.alibaba.fastjson.annotation.JSONField;public class DemoVo {JSONField(name first_name)private String firstName;public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName firstName;}
}如果采用的是jackson库
import com.fasterxml.jackson.annotation.JsonProperty;public class DemoVo {JsonProperty(value first_name)private String firstName;public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName firstName;}
}如果采用的是gson库
import com.google.gson.annotations.SerializedName;public class DemoVo {SerializedName(value first_name)private String firstName;public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName firstName;}
}三种序列化方式测试代码
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.json.JsonMapper;
import com.google.gson.Gson;public class JsonTest {public static void main(String[] args) throws Exception {DemoVo data new DemoVo();data.setFirstName(james);// fastjsonSystem.out.println(fastjson : JSONObject.toJSONString(data));// jacksonJsonMapper jsonMapper JsonMapper.builder().build();System.out.println(jackson : jsonMapper.writeValueAsString(data));// gsonGson gsonMapper new Gson();System.out.println(gson : gsonMapper.toJson(data));}
}测试结果如下
fastjson : {first_name:james}
jackson : {first_name:james}
gson : {first_name:james}