0
私は以下のjsonスキーマを持っています。スキーマには@文字が含まれています。これはどのようにしてJava pojoに変換されますか?Jsonに '@attr'という名前のjava POJOがある
あなたはジャクソンライブラリを使用してのような何かを行うことができますサンプルJSON
{
"@type":"employee",
"name":"John Doe"
}
私は以下のjsonスキーマを持っています。スキーマには@文字が含まれています。これはどのようにしてJava pojoに変換されますか?Jsonに '@attr'という名前のjava POJOがある
あなたはジャクソンライブラリを使用してのような何かを行うことができますサンプルJSON
{
"@type":"employee",
"name":"John Doe"
}
に:
public class Person {
private final String type;
private final String name;
@JsonCreator
public Person(@JsonProperty("@type") String type, @JsonProperty("name") String name) {
this.type = type;
this.name = name;
}
public String getType() {
return type;
}
public String getName() {
return name;
}
}
Gsonは別の代替です:
public class Person{
@SerializedName("@type")
public String type;
public String name;
}
、あなたのようにそれを使用することができます。
Person person = new Gson().fromJson(YOURJSON,Person.class);
コンストラクタではなく、private変数に対して注釈を付けることはできますか? – user5765683
いいえ、非マーシャリング(jsonからjava pogo)時にフィールド上のJsonPropertyを持つJsonCreatorオーバーコンストラクタが使用されるため、通常はJsonPropertyの他の変数を整列化(java - > json)する必要がありますが、 Javaのフィールド名は、json属性の値になります。 – Ian
それは動作します。助けてくれてありがとう。私は、JsonGetterとjsonsetterアノテーションが動作することも発見しました – user5765683