我已经尝试创建自定义序列化程序,但我无法在那里获得字段名。
在GSON中,我使用了exclusionstrategy
,但Jackson没有这样的功能。有对等的吗?
下面通过名称排除字段的示例来自我的博客文章,Gson v Jackson-Part 4。(搜索PropertyFilterMixin
。)此示例演示使用FilterProvider
和SimpleBeanPropertyFilter
来SerializeAllexCept
用户指定的字段名列表。
@JsonFilter("filter properties by name")
class PropertyFilterMixIn {}
class Bar
{
public String id = "42";
public String name = "Fred";
public String color = "blue";
public Foo foo = new Foo();
}
class Foo
{
public String id = "99";
public String size = "big";
public String height = "tall";
}
public class JacksonFoo
{
public static void main(String[] args) throws Exception
{
ObjectMapper mapper = new ObjectMapper();
mapper.getSerializationConfig().addMixInAnnotations(
Object.class, PropertyFilterMixIn.class);
String[] ignorableFieldNames = { "id", "color" };
FilterProvider filters = new SimpleFilterProvider()
.addFilter("filter properties by name",
SimpleBeanPropertyFilter.serializeAllExcept(
ignorableFieldNames));
ObjectWriter writer = mapper.writer(filters);
System.out.println(writer.writeValueAsString(new Bar()));
// output:
// {"name":"James","foo":{"size":"big","height":"tall"}}
}
}
(注意:相关的API可能在最近的Jackson版本中略有改变。)
虽然该示例确实使用了一个看似不必要的注释,但该注释并未应用于要排除的字段。(为了帮助修改API以简化必要的配置,请毫不犹豫地投票支持实施Jackson-274号。
问题内容: 我有一个包含一些字段的Bean,并且其中两个不打算由hibernate模式映射(errorStatus和operationResultMessage)。我如何(通过注释)告诉Hibernate我不想映射这些字段? Bean中的映射表没有字段:errorStatus和operationResultMessage 提前致谢。 代码如下所示: **吸气剂和二传手被忽略! 问题答案: 使用注释
Jackson可以将JSON数据反序列化为不可变的对象。但是默认情况下,必须使用或指定构造函数或静态工厂方法参数。我如何配置Jackson和编译器,以便不需要这些注释?当使用Spring Boot时,我如何最好地配置这些?
我正在调用一个API,它返回一个转换为 列表项。 我已经查看了< code>@JsonInclude,但这适用于< code>null属性,而不适用于< code>null集合项。 编辑 值显示为null的原因是因为选项< code >反序列化功能。正在使用READ _ UNKNOWN _ ENUM _ VALUES _ AS _ NULL 。
问题内容: 我要呼吁汇率第三方API,但JSON返回不断变化,如果我申请到的转换,它将返回我:,所以如果我的要求来,它将返回我。 我将不得不使用将返回的结果映射到pojo中,是否有任何可行的方法? 我当前的硬编码解决方法: 问题答案: 是具有值的字段的对象。 否是with键/值对。 两者都是正确的,但是由于before的值是动态的(变化的),因此它是您需要的第二种解释。 因此,请勿要求将JSON转
我有一个带有Jackson注释的POJO 因此,当Jackson库被其他框架(如RestEasy)用于自动编组时,这些注释有助于指导序列化和反序列化过程。
问题内容: 我正在杰克逊1.6.2中使用REST Web服务/ ApacheWink。我如何注释枚举字段,以便Jackson对其进行反序列化? 内部阶层 Jackson的文档指出可以通过@JsonValue/来做到这一点,@JsonCreator但没有提供示例。 是否有人愿意像往常一样洒(java)bean? 问题答案: 如果您使用的是Jackson 1.9,则可以通过以下方式完成序列化: 因此,