Java 类com.fasterxml.jackson.databind.module.SimpleAbstractTypeResolver 实例源码

项目:spring-cloud-skipper    文件:Status.java   
@JsonIgnore
public List<AppStatus> getAppStatusList() {
    try {
        ObjectMapper mapper = new ObjectMapper();
        mapper.addMixIn(AppStatus.class, AppStatusMixin.class);
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        SimpleModule module = new SimpleModule("CustomModel", Version.unknownVersion());
        SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver();
        resolver.addMapping(AppInstanceStatus.class, AppInstanceStatusImpl.class);
        module.setAbstractTypes(resolver);
        mapper.registerModule(module);
        TypeReference<List<AppStatus>> typeRef = new TypeReference<List<AppStatus>>() {
        };
        if (this.platformStatus != null) {
            return mapper.readValue(this.platformStatus, typeRef);
        }
        return new ArrayList<AppStatus>();
    }
    catch (Exception e) {
        throw new IllegalArgumentException("Could not parse Skipper Platfrom Status JSON:" + platformStatus, e);
    }
}
项目:spring-cloud-dataflow    文件:SkipperStreamDeployer.java   
public static List<AppStatus> deserializeAppStatus(String platformStatus) {
    try {
        ObjectMapper mapper = new ObjectMapper();
        mapper.addMixIn(AppStatus.class, AppStatusMixin.class);
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        SimpleModule module = new SimpleModule("CustomModel", Version.unknownVersion());
        SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver();
        resolver.addMapping(AppInstanceStatus.class, AppInstanceStatusImpl.class);
        module.setAbstractTypes(resolver);
        mapper.registerModule(module);
        TypeReference<List<AppStatus>> typeRef = new TypeReference<List<AppStatus>>() {
        };
        List<AppStatus> result = mapper.readValue(platformStatus, typeRef);
        return result;
    }
    catch (Exception e) {
        throw new IllegalArgumentException("Could not parse Skipper Platform Status JSON:" + platformStatus, e);
    }
}
项目:aem-core-wcm-components    文件:SearchResultServletTest.java   
private void validateResponse(MockSlingHttpServletResponse response, List<Map<String, String>> exected) throws IOException {
    ObjectMapper mapper = new ObjectMapper();
    SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver();
    resolver.addMapping(ListItem.class, Item.class);
    SimpleModule module = new SimpleModule();
    module.setAbstractTypes(resolver);
    mapper.registerModule(module);
    ListItem[] listItems = mapper.readValue(response.getOutputAsString(), ListItem[].class);
    assertEquals(exected.size(), listItems.length);

    for (int i = 0; i < exected.size(); i++) {
        Map<String, String> expectedMap = exected.get(i);
        ListItem listItem = listItems[i];
        assertEquals(expectedMap.get("url"), listItem.getURL());
        assertEquals(expectedMap.get("title"), listItem.getTitle());

    }
}
项目:mesh    文件:JsonUtil.java   
/**
 * Initialize the default mapper.
 */
private static void initDefaultMapper() {
    defaultMapper = new ObjectMapper();
    defaultMapper.setDefaultPropertyInclusion(JsonInclude.Value.construct(Include.NON_NULL, Include.ALWAYS));
    defaultMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

    SimpleModule module = new SimpleModule();
    module.addDeserializer(AbstractRestException.class, new RestExceptionDeserializer());
    module.addDeserializer(NodeFieldListItem.class, new NodeFieldListItemDeserializer());
    module.addSerializer(NumberFieldImpl.class, new BasicFieldSerializer<NumberFieldImpl>());
    module.addSerializer(HtmlFieldImpl.class, new BasicFieldSerializer<HtmlFieldImpl>());
    module.addSerializer(StringFieldImpl.class, new BasicFieldSerializer<StringFieldImpl>());
    module.addSerializer(DateFieldImpl.class, new BasicFieldSerializer<DateFieldImpl>());
    module.addSerializer(BooleanFieldImpl.class, new BasicFieldSerializer<BooleanFieldImpl>());
    module.addSerializer(FieldList.class, new FieldListSerializer());
    module.addSerializer(JsonObject.class, new JsonObjectSerializer());
    module.addSerializer(JsonArray.class, new JsonArraySerializer());

    module.addSerializer(FieldMapImpl.class, new JsonSerializer<FieldMapImpl>() {
        @Override
        public void serialize(FieldMapImpl value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {
            gen.writeObject(value.getNode());
        }
    });

    module.addDeserializer(JsonObject.class, new JsonObjectDeserializer());
    module.addDeserializer(JsonArray.class, new JsonArrayDeserializer());
    module.addDeserializer(FieldMap.class, new FieldMapDeserializer());
    module.addDeserializer(ExpandableNode.class, new UserNodeReferenceDeserializer());
    module.addDeserializer(ListableField.class, new FieldDeserializer<ListableField>());
    module.addDeserializer(FieldSchema.class, new FieldSchemaDeserializer<FieldSchema>());

    defaultMapper.registerModule(module);
    defaultMapper.registerModule(new SimpleModule("interfaceMapping") {
        private static final long serialVersionUID = -4667167382238425197L;

        @Override
        public void setupModule(SetupContext context) {
            context.addAbstractTypeResolver(new SimpleAbstractTypeResolver().addMapping(Schema.class, SchemaModelImpl.class));
            context.addAbstractTypeResolver(new SimpleAbstractTypeResolver().addMapping(Microschema.class, MicroschemaModelImpl.class));
        }
    });

}