1

オブジェクトの部分的なjson文字列を受け入れるメソッドをspringmvcで取得し、jacksonに自動的に逆シリアル化させようとしています。必要な属性のみを持つ一時オブジェクトを作成するか、文字列として渡して Gson を使用してデシリアライズすることで解決できますが、これらはハッキリしています。ジャクソンにそれを行う方法を伝える方法はありますか?

コントローラーのスニペットは次のとおりです。

@RequestMapping(value = "/task", 
    method = RequestMethod.POST,
    consumes="application/json")
public @ResponseBody String postTask(@RequestBody Task task){
    if(task.getId() == null){
        task.setId(UUID.randomUUID());
    }
    if(task.getDate_entered() == 0){
        task.setDate_entered(System.currentTimeMillis());
    }
    TaskDao.addTask(task);
    return "success";
} 

そしてタスク、基本的な pojo:

@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class Task {
    private UUID id;
    private String name;
    private String description;
    private long date_entered;
    private long finish_by;

    public UUID getId() {
        return id;
    }
    public void setId(UUID id) {
        this.id = id;
    }
    // Rest of the getters and setters
}

私の他の春関連の質問でわからない場合、私は一種の盲目的であり、これに対する適切なGoogleクエリを理解できません。

ありがとう!

4

1 に答える 1

0

@JsonIgnoreシリアライゼーションやデシリアライゼーションを無視するメソッド (デシリアライゼーションのセッターとシリアライゼーションのゲッター) またはフィールドで jackson の注釈を使用する必要があります。たとえば、あなたの例では、シリアライズしたくない場合descriptionは、

@JsonIgnore
public void setDescription(String description) {
        this.description = description;
 }

descriptionそして、変換されたモデルでは価値が得られないことがわかります。

于 2012-06-23T05:28:03.640 に答える