2014-11-21 101 views
2

結合play.data.Form在使用@JsonProperty我有下面的類映射屬性從JsonNode

public static class Thing { 
    @JsonProperty("_name_") 
    String name; 
} 

,我試圖將其綁定到表單和得到這個類的一個實例這樣

ObjectNode node = Json.newObject(); 
node.put("_name_", "some name"); 

Form<Thing> thingForm = Form.form(Thing.class); 
thingForm = thingForm.bind(node); 
Thing thing = thingForm.get(); 

因此,我預計thing.name將是「某個名稱」,但它不是,它是null。我明白@JsonProperty是用於Json(de)序列化,只是如果它有效,就試過。問題是如何用Play's Form來實現這一點?

我也試過Register a custom DataBinder如文檔中所述,但其方法永遠不會被調用。

任何幫助表示讚賞。

回答

0

您是否試過thingForm.bindFromRequest()而不是thingForm.bind()?我使用完全相同的東西,我用json數據製作ajax文章,它對我來說工作得很好。它看起來不像@JsonProperty()有什麼關係。

你確定如果你想要上課Thing static?我假設你有你的表單屬性的公共getter/setter。