問題:最近為設備端開發接口,在接口定義階段,發現一個問題,設備端的參數命名方式是_隔開的,比如first_name,后端的Java命名方式是駝峰標示,比如firstName。怎么把他們對應起來呢?。
辦法:采用com.alibaba.fastjson.annotation.JSONField
- 把Java對象中的firstName轉化為first_name;
- 把前端的參數first_name映射到Java對象的firstName中。
例子:
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.annotation.JSONField; public class JsonTest { public static void main(String[] args) { Person p = new Person(); p.setFirstName("nihao"); p.setClassId(11); p.setRemart("haha"); // 轉化的json字符串,會把firstName對應為first_name String json = JSON.toJSONString(p); System.out.println(json); // 轉化的對象,會把first_name對應到firstName Person pp = JSON.parseObject(json, Person.class); System.out.println(pp.getFirstName()); } } class Person { @JSONField(name="first_name") private String firstName; @JSONField(name="class_id") private int classId; private String remart; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public int getClassId() { return classId; } public void setClassId(int classId) { this.classId = classId; } public String getRemart() { return remart; } public void setRemart(String remart) { this.remart = remart; } }