是否可以使用Jackson JSON序列化自定义注释?

时间:2013-09-18 00:49:30

标签: java json jackson

我为类的方法创建了一个简单的注释。我想以JSON格式导出每个注释的值。

例如,我有一个注释:

@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.METHOD )
public @interface MyAnnotation
{
    int someInteger();
    String someString();
    String[] possibleTypes();
}

然后在我的班上,我正在注释:

package com.clusin;
public class foo
{
    @MyAnnotation(someInteger = 1, someString = "bar", possibleType = { "a","b","c" })
    public int doSomeComputation(Object x, Object y)
    {
        //Do something here.
    }
}

使用反射我们可以在运行时获得对这些注释的引用。

所以我的问题是:鉴于在运行时获得这些注释,是否可以使用jackson序列化注释中包含的值?

我尝试使用@JsonProperty注释我的注释,但是在调用ObjectMapper#writeValueAsString时,ObjectMapper会抛出JsonMappingException。

org.codehaus.jackson.map.JsonMappingException: No serializer found for class $Proxy5     and no properties discovered to cre
ate BeanSerializer (to avoid exception, disable         SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) )
    at org.codehaus.jackson.map.ser.StdSerializerProvider$1.failForEmpty(StdSerializerProvider.java:89)
    at org.codehaus.jackson.map.ser.StdSerializerProvider$1.serialize(StdSerializerProvider.java:62)
    at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:315)
    at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:242)
    at org.codehaus.jackson.map.ObjectMapper._configAndWriteValue(ObjectMapper.java:1846)
    at org.codehaus.jackson.map.ObjectMapper.writeValueAsString(ObjectMapper.java:1473)

有什么想法吗?

感谢您的时间。

0 个答案:

没有答案