如何使用jersey和MOxy

时间:2017-04-12 03:01:45

标签: java json rest jersey moxy

您好我想将球衣1.x更新为2.x,杰克逊更新为MOxy。 但我不知道如何在MOxy中编组和解组抽象类。

在杰克逊,它完全使用自定义解析器。 这是我的示例代码。

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type", include = JsonTypeInfo.As.PROPERTY)
@JsonTypeIdResolver(AnimalResolver.class)
abstract class animal{
    protected String name;
}

public class Cat extends Animal{
    private CatBreed breed;
}

public class Dog extends Animal {
    private DogBreed breed;
}

分解器

public class AnimalResolver extends TypeIdResolverBase{
    ....
    @Override
    public String idFromValueAndType(Object context, Class<?> suggestedType) {
        if (Dog.class.isAssignableFrom(suggestedType)) {
            return "dog";
        } else if (Cat.class.isAssignableFrom(suggestedType)) {
            return "cat";
        }
        throw new IllegalArgumentException();
    }

    @Override
    public JavaType typeFromId(DatabindContext context, String id) throws IOException {
        TypeFactory typeFactory = (context != null) ? context.getTypeFactory() : TypeFactory.defaultInstance();
        if ("dog".equals(id)) {
            return typeFactory.constructType(Dog.class);
        } else if ("cat".equals(id)) {
            return typeFactory.constructType(Cat.class);
        }
        throw new IllegalArgumentException();
    }
}

我怎么能在MOxy中这样做?

0 个答案:

没有答案