fastJson在bean中加入@JsonProperty轉換出的對象中依然有字段爲null的處理

1.轉換的代碼如下

String json = "{\"id\":1059827483,\"idstr\":\"1059827483\",\"class\":1,\"screen_name\":\"DancingToDeath\"}";
        System.out.println(json);
        U u = JSONObject.parseObject(json, U.class);
        System.out.println(u.getId());
        System.out.println(u.getIdstr());
        System.out.println(u.getMyClass());
        System.out.println(u.getScreen());

2.U實體定義如下:

public class U {

    private long id;
    private String idstr;
    @JSONField(name = "class")
    private int myClass;
    @JsonProperty("screen_name")
    private String screen;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getIdstr() {
        return idstr;
    }

    public void setIdstr(String idstr) {
        this.idstr = idstr;
    }

    public int getMyClass() {
        return myClass;
    }

    public void setMyClass(int myClass) {
        this.myClass = myClass;
    }

    public String getScreen() {
        return screen;
    }

    public void setScreen(String screenName) {
        this.screen = screenName;
    }

}
3.轉換結果:

{"id":1059827483,"idstr":"1059827483","class":1,"screen_name":"DancingToDeath"}
1059827483
1059827483
1
null
可見,screen_name並未轉換出來,原因在於,對於普通的json解析類,用JsonProperty可以,但是在用fastJson進行解析時,需要用@JSONField(name = "screen_name")來進行標註。

4.改變U

private long id;
    private String idstr;
    @JSONField(name = "class")
    private int myClass;
    @JSONField(name = "screen_name")
    private String screen;
5.轉換結果如下:

1059827483
1059827483
1
DancingToDeath


以此記錄,希望能幫助到遇到同樣問題的人。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章