【发布时间】:2015-07-23 08:13:36
【问题描述】:
我使用的是 resteasy 3.0.11 版,使用 jaxb 和 jackson 2.0 作为序列化提供程序。我有一个看起来像这样的服务:
@Path("/path")
@IgnoreMediaTypes("application/*+json")
public interface MyService {
@GET
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
@IgnoreMediaTypes("application/*+json")
MyData getData();
}
这是 MyData 类:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class MyData implements JsonSerializable {
@JsonProperty
private int a;
private int b;
}
JsonSerializable 接口:
@JsonAutoDetect(
fieldVisibility = JsonAutoDetect.Visibility.NONE,
getterVisibility = JsonAutoDetect.Visibility.NONE,
setterVisibility = JsonAutoDetect.Visibility.NONE,
isGetterVisibility = JsonAutoDetect.Visibility.NONE,
creatorVisibility = JsonAutoDetect.Visibility.NONE)
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown=true)
public interface JsonSerializable {}
我的问题是当我用localhost/path/test调用这个服务时,MyData类的b属性也被序列化了:
{"a":0,"b":0}
甚至,JsonSerializeble 接口的 fieldVisibility 设置为 NONE。已经尝试了我所能做的一切,但没有成功。对这个问题有帮助吗?
【问题讨论】:
-
您的字段不是标题所说的私有字段,它具有默认访问修饰符
-
@Panther,抱歉,我错过了修饰符...更新了帖子。
标签: java serialization jackson resteasy