2012-06-19 20 views
5

を使用して、単純なJSON構造を作成します。私は以下のジャクソンマッピング相当するものを作成したいジャクソン

{\"isDone\": true} 

私はこのようなクラスを作成する必要があると思う:

public class Status { 

    private boolean isDone; 

    public boolean isDone{ 
     return this.isDone; 
    } 

    public void setDone(boolean isDone){ 
     this.isDone = isDone; 
    } 
} 

しかし、私はどのようにそれをinstatiateし、文字列にJSONを書くのですか?

答えて

6

あなたの例に問題があり、ジャクソンはデフォルトのJSONプロパティ名の選択肢です:ジャクソンはisDonesetDoneを表示し、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注釈のドキュメントを調べる必要がありました。

+0

ありがとうございます、これが説明されている方向に私を指摘できますか?それとも文書の中に散在していますか? – user701254

2

右。必要なコード:

ObjectMapper mapper = new ObjectMapper(); 
System.out.println(mapper.writeValueAsString(new Status())); 
関連する問題