如何为json响应添加和忽略字段
我正在使用RestEasy和hibernate在Jackson中返回响应。 我有一个bean播放器,其中包含字段:name,id,age,position。
现在,我正在实现两个GET
rest方法来恢复json。
-
getPlayer()
,它返回一个玩家:名字,身份,年龄,位置。 -
getPlayers()
,返回一个玩家列表,但有了这个玩家列表,我不想返回位置。
我的意思是,我如何为一个响应添加一个字段而忽略它以获得另一个响应。
请建议。
谢谢
你不能简单地将位置字段归零吗?
@GET @Path("/players") public List getPlayers(){ List players = getPlayersFromHibernate(); for(Player player : players) player.setPosition(null); return players; }
您应该在POJO getter上使用@JsonIgnore
注释。
http://jackson.codehaus.org/1.0.1/javadoc/org/codehaus/jackson/annotate/JsonIgnore.html
更新:
您需要使用@JsonIgnoreProperties
接口,并在Request映射@JsonIgnoreProperties
其设置为@JSONFilter
。
您可以在此处阅读更多相关信息: http : //www.jroller.com/RickHigh/entry/filtering_json_feeds_from_spring
我正在使用tomee,忽略json响应transient
一个字段为我工作,但我不知道它是否是正确的方法(我的应用程序没有jackson可见,我只包括jee-web 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; }
响应
{"name":"myname"}
- 在Hibernate和PostgreSQL中使用UserType的数组 – > MappingException
- 如何在JPA critera API中做一个独特的计数?
- 如何在同一个Hibernate事务中运行本机SQL查询?
- Hibernate 3.5.x:NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval
- 使用hibernate和gilead for gwt添加到实体类中保存的列表时的LazyInitializationException
- 将byte 转换为图像并在jsp上显示
- @JoinFormula和@OneToMany定义 – 糟糕的文档
- 集合中元素的hibernate标准
- 我可以使用带有beanvalidation的hibernate实体注释吗?