/** * @deprecated since 2.5 Use {@link #forType(TypeReference)} instead */ @Deprecated // since 2.5 public ObjectWriter withType(TypeReference<?> rootType) { return forType(rootType); }
/** * @deprecated since 2.5 Use {@link #forType(JavaType)} instead */ @Deprecated // since 2.5 public ObjectWriter withType(JavaType rootType) { return forType(rootType); }
/** * @deprecated since 2.5 Use {@link #forType(Class)} instead */ @Deprecated // since 2.5 public ObjectWriter withType(Class<?> rootType) { return forType(rootType); }
/** * Method that will construct a new instance that uses specific type * as the root type for serialization, instead of runtime dynamic * type of the root object itself. * * @since 2.5 */ public ObjectWriter forType(Class<?> rootType) { if (rootType == Object.class) { return forType((JavaType) null); } return forType(_config.constructType(rootType)); }
/** * Method that will construct a new instance that uses specific type * as the root type for serialization, instead of runtime dynamic * type of the root object itself. * * @since 2.5 */ public ObjectWriter forType(TypeReference<?> rootType) { return forType(_config.getTypeFactory().constructType(rootType.getType())); }
public EurekaJacksonCodec(String versionDeltaKey, String appsHashCodeKey) { this.versionDeltaKey = versionDeltaKey; this.appHashCodeKey = appsHashCodeKey; this.mapper = new ObjectMapper(); this.mapper.setSerializationInclusion(Include.NON_NULL); SimpleModule module = new SimpleModule("eureka1.x", VERSION); module.addSerializer(DataCenterInfo.class, new DataCenterInfoSerializer()); module.addSerializer(InstanceInfo.class, new InstanceInfoSerializer()); module.addSerializer(Application.class, new ApplicationSerializer()); module.addSerializer(Applications.class, new ApplicationsSerializer(this.versionDeltaKey, this.appHashCodeKey)); module.addDeserializer(LeaseInfo.class, new LeaseInfoDeserializer()); module.addDeserializer(InstanceInfo.class, new InstanceInfoDeserializer(this.mapper)); module.addDeserializer(Application.class, new ApplicationDeserializer(this.mapper)); module.addDeserializer(Applications.class, new ApplicationsDeserializer(this.mapper, this.versionDeltaKey, this.appHashCodeKey)); this.mapper.registerModule(module); Map<Class<?>, Supplier<ObjectReader>> readers = new HashMap<>(); readers.put(InstanceInfo.class, ()->mapper.reader().forType(InstanceInfo.class).withRootName("instance")); readers.put(Application.class, ()->mapper.reader().forType(Application.class).withRootName("application")); readers.put(Applications.class, ()->mapper.reader().forType(Applications.class).withRootName("applications")); this.objectReaderByClass = readers; Map<Class<?>, ObjectWriter> writers = new HashMap<>(); writers.put(InstanceInfo.class, mapper.writer().forType(InstanceInfo.class).withRootName("instance")); writers.put(Application.class, mapper.writer().forType(Application.class).withRootName("application")); writers.put(Applications.class, mapper.writer().forType(Applications.class).withRootName("applications")); this.objectWriterByClass = writers; }
writer = writer.forType(javaType);
objectWriter = objectWriter.forType(javaType);
writer = writer.forType(javaType);
objectWriter = objectWriter.forType(javaType);
public JsonWrapper(V obj, ObjectWriter writer) { Class<V> type = (Class<V>) obj.getClass(); this.type = obj.getClass().getName(); try { this.value = writer.forType(type).writeValueAsString(obj); } catch (JsonProcessingException e) { // TODO Throw a runtime exception? JsonAttributeConverter.LOG.error("Failed to serialize as object into JSON: {}", obj, e); } }
public JsonAttributeConverter() { // ResolvableType resType = ResolvableType.forClass(AttributeConverter.class, getClass()); // Class<? extends Object> objType = (Class<? extends Object>) resType.resolveGeneric(0); // this.type = objType; // ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JodaModule()); mapper.setSerializationInclusion(Include.NON_NULL); mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker() .withFieldVisibility(JsonAutoDetect.Visibility.ANY) .withGetterVisibility(JsonAutoDetect.Visibility.NONE) .withIsGetterVisibility(JsonAutoDetect.Visibility.NONE)); reader = mapper.reader().forType(JsonWrapper.class); writer = mapper.writer().forType(JsonWrapper.class); }
writer = writer.forType(rootType);
/** * @deprecated since 2.5 Use {@link #forType(Class)} instead */ @Deprecated // since 2.5 public ObjectWriter withType(Class<?> rootType) { return forType(rootType); }
/** * @deprecated since 2.5 Use {@link #forType(Class)} instead */ @Deprecated // since 2.5 public ObjectWriter withType(Class<?> rootType) { return forType(rootType); }
/** * @deprecated since 2.5 Use {@link #forType(TypeReference)} instead */ @Deprecated // since 2.5 public ObjectWriter withType(TypeReference<?> rootType) { return forType(rootType); }
/** * @deprecated since 2.5 Use {@link #forType(JavaType)} instead */ @Deprecated // since 2.5 public ObjectWriter withType(JavaType rootType) { return forType(rootType); }
/** * @deprecated since 2.5 Use {@link #forType(TypeReference)} instead */ @Deprecated // since 2.5 public ObjectWriter withType(TypeReference<?> rootType) { return forType(rootType); }
/** * Write sensitivity factors input in JSON format to writer * @param sensitivityFactors The sensitivity factors input to export * @param writer The writer to write to * @throws IOException */ public static void write(List<SensitivityFactor> sensitivityFactors, Writer writer) throws IOException { Objects.requireNonNull(sensitivityFactors); Objects.requireNonNull(writer); ObjectWriter objectWriter = JsonUtil.createObjectMapper().writerWithDefaultPrettyPrinter(); objectWriter.forType(new TypeReference<List<SensitivityFactor>>() { }).writeValue(writer, sensitivityFactors); }
@Override public void init(ProtobufSchema schema, Type... types) { writer = ProtobufManager.getMapper().writer(schema); reader = ProtobufManager.getMapper().reader(schema); // 需要考虑没参数的场景 if (types.length == 1) { JavaType javaType = TypeFactory.defaultInstance().constructType(types[0]); writer = new StandardObjectWriter(writer.forType(javaType)); reader = new StandardObjectReader(reader.forType(javaType)); } } }