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
以此記錄,希望能幫助到遇到同樣問題的人。