在Jax-rs中,如何在json输出中将空值呈现为空字符串

时间:2016-01-26 18:47:50

标签: java json jax-rs

我目前有一个像这样的JPA实体

@XmlNullPolicy(emptyNodeRepresentsNull = true, nullRepresentationForXml = XmlMarshalNullRepresentation.EMPTY_NODE )
@XmlRootElement
@Entity
public class Entity implements Serializable {
   @id
   @Column
   private Long id;
   @Column
   private String field2;
   @Column 
   private BigDecimal field3;
   @Column
   private BigDecimal field4;

当我在jax-rs网络服务中返回实体时,我得到了:

{ "id" : 12345 , "field2" : "Hello world" , "field3" : null, "field4" : null }

我希望有一个像

这样的输出
{ "id" : 12345 , "field2" : "Hello world" , "field3" : "", "field4" : "" }

实现这一目标的最佳成语是什么?

我使用的是weblogic 12c,而我的JAXB实现是eclipselink-moxy。

1 个答案:

答案 0 :(得分:1)

我个人认为这不是一个好习惯。使用空String时,您将丢失信息。 null表示未设置,空String对象表示设置为空值。我认为客户端应该处理这个问题,但是如果你想要丢失这类信息你可以像here那样创建自定义序列化。