我正在使用RestEasy和hibernate在Jackson中返回響應。 我有一個bean播放器有字段:name,id,age,position。如何爲json響應添加和忽略字段
現在,我正在執行兩個GET
休息方法來回應json。
getPlayer()
,這是返回一個球員:名字,身份證,年齡,位置。getPlayers()
,這是返回一個球員名單,但與這名球員,我不想返回位置。
我的意思是,如何爲一個響應添加一個字段,並忽略另一個響應。
請建議。
感謝
我正在使用RestEasy和hibernate在Jackson中返回響應。 我有一個bean播放器有字段:name,id,age,position。如何爲json響應添加和忽略字段
現在,我正在執行兩個GET
休息方法來回應json。
getPlayer()
,這是返回一個球員:名字,身份證,年齡,位置。
getPlayers()
,這是返回一個球員名單,但與這名球員,我不想返回位置。
我的意思是,如何爲一個響應添加一個字段,並忽略另一個響應。
請建議。
感謝
不能你只是空出的位置場?
你應該對POJO的getter使用@JsonIgnore
註解。
http://jackson.codehaus.org/1.0.1/javadoc/org/codehaus/jackson/annotate/JsonIgnore.html
更新:
您需要在您的請求映射使用的界面與@JsonIgnoreProperties
並將其設置爲@JSONFilter
。
你可以閱讀更多關於它在這裏: http://www.jroller.com/RickHigh/entry/filtering_json_feeds_from_spring
我使用tomee,忽略JSON響應我transient
工程現場,但我不知道這是否是去的正確方法(沒有傑克遜看到我的申請,我只是包含的JEE-網絡API):
的Servlet
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/")
@Produces({ MediaType.APPLICATION_JSON })
public class JsonApi {
@GET
@Path("testapi")
public MyObject testApi() {
return new MyObject("myname", "mycolor");
}
}
對象
public class MyObject {
public MyObject() {
}
public MyObject(String name, String color) {
this.name = name;
this.color = color;
}
public String name;
public transient String color;
}
Respo NSE
{"name":"myname"}
這種方法在使用持久性時可能會引入問題,我不會這麼做。另一方面,如果你只是爲了數據傳輸而使用這個對象,那應該沒問題。 – holmicz 2017-03-04 23:54:14
這會打開你,如果你忘記編寫代碼來清空該字段,則會引入一個錯誤。使用'@ JsonIgnore',所以你不必這樣做。 – 2013-01-16 19:38:11
這將如何解決OP的要求「我如何爲一個響應添加一個字段並將其忽略用於另一個響應。」 ?另外,當你編寫代碼時「忘記」做東西總是會導致錯誤;) – eiden 2013-01-17 10:39:14
這看起來對我來說是最簡單的解決方案,同時將@JsonIgnore添加到必須始終忽略的屬性。艾登,你有沒有找到其他辦法來做到這一點?我不喜歡JsonView和JsonFilter可以用來獲得相同結果的方式。 – Jayz 2013-03-04 05:30:25