我正在尝试做一些在gson中很容易的事情。自从我切换到Jackson作为序列化器后,我不知道如何实现:
我只想序列化已经被Annotation标记的字段。GSON代码应该是:
class Foo {
@Expose
public String sometext="Hello World";
@Expose
public int somenumber=30;
public float noop=1.0;
...
}
字符串
结果应该是(JSON)
{
Foo: {
sometext:'Hello World',
somenumber: 30
}
}
型
(错误可能会被忽略-源代码只是为了演示)
那么Jackson对gson的@Expose
和new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
的对应是什么呢?
4条答案
按热度按时间li9yvcax1#
如果你只想要一个特定的类型,你也可以使用注解:
字符串
ig9co6j12#
new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
的对应部分是初始化ObjectMapper,如下所示:字符串
那么
@Expose
的对应物是@JsonProperty
。使用上面的示例bean:型
this answer是一个非常类似的问题。
oaxa6hgo3#
似乎有一种方法可以配置
ObjectMapper
忽略所有未注解的字段。“字符串
Source
nbewdwxp4#
在Jackson中,你做了相反的事情。用
@JsonIgnore
注解你不想要的字段。标记注解,指示基于内省的序列化和非序列化功能将忽略注解的方法或字段。也就是说,不应将其视为“getter”、“setter”或“creator”。