あなたの例に問題があり、ジャクソンはデフォルトのJSONプロパティ名の選択肢です:ジャクソンはisDone
とsetDone
を表示し、JSONプロパティ名としてdone
を選択します。あなたはJsonProperty
、アノテーションを使用して、このデフォルトの選択を上書きすることができます。
public class Status
{
private boolean isDone;
@JsonProperty("isDone")
public boolean isDone()
{
return this.isDone;
}
@JsonProperty("isDone")
public void setDone(boolean isDone)
{
this.isDone = isDone;
}
}
その後:
Status instance = new Status();
String jsonString = null;
instance.setDone(true);
ObjectMapper mapper = new ObjectMapper();
jsonString = mapper.writeValueAsString(instance);
今jsonString
が{ "isDone" : true }
が含まれています。文字列をObjectMapper.writeValue(OutputStream, Object)を使用してOutputStream
に、ObjectMapper.writeValue(Writer, Object)を使用してWriter
に書き込むこともできます。
この場合、いずれのアクセサでも実際にはJsonProperty
アノテーションのみ必要ですが、両方ではありません。 isDone
に注釈を付けるだけで、あなたが望むJSONプロパティ名を得ることができます。
JsonProperty
注釈を使用する代わりに、アクセサの名前をsetIsDone/getIsDone
に変更することもできます。その後、注釈は不要です。
クイックで汚れたジャクソンのチュートリアル:Jackson in 5 minutesを参照してください。特定のプロパティを理解するには、Jackson注釈のドキュメントを調べる必要がありました。
ありがとうございます、これが説明されている方向に私を指摘できますか?それとも文書の中に散在していますか? – user701254