JSON中JSONField的使用


問題:最近為設備端開發接口,在接口定義階段,發現一個問題,設備端的參數命名方式是_隔開的,比如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;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM