Javaプログラミング:指定したフィールド順にBeanをJsonに変換
3110 ワード
Jsonツールの紹介
Java言語では、一般的なBeanをJsonに変換するJarパッケージには、次のような種類があります.
私たちの問題は、上記のツールを使用する過程で、指定したフィールドの順序でどのようにシーケンス化しますか?次にfastjsonを例に説明します.
解決策
コード1:
public class User2 {
private String name;
private String age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
デフォルトで生成されるJson文字列は次のとおりです.
{"age":"18","name":"json","sex":" "}
コード2:
import com.alibaba.fastjson.annotation.JSONField;
public class User {
@JSONField(ordinal=1)
private String name;
@JSONField(ordinal=2)
private String age;
@JSONField(ordinal=3)
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
注記
@JSONField(ordinal=1)
フィールドのソート設定を使用して、Json文字列を次のように生成します.{"name":"json","age":"18","sex":" "}
その他のツールの多くは似たような機能を備えており、以上は参考までにしてください.
デザート
コード3:
import com.alibaba.fastjson.annotation.JSONField;
public class User {
@JSONField(ordinal = 1)
private String name;
@JSONField(ordinal = 2, name = "nianling")
private String age;
@JSONField(ordinal = 3)
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
Json文字列は次のように生成されます.
{"name":"json","nianling":"18","sex":" "}
コード2で生成された文字列を比較すると、ageがnianlingになったのはなぜですか.
レビューコード:
:
@JSONField(ordinal = 2)
private String age;
:
@JSONField(ordinal = 2, name = "nianling")
private String age;
元々はnameの役割でした.