com.fasterxml.jackson.databind.ObjectMapper.canSerialize()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(9.2k)|赞(0)|评价(0)|浏览(263)

本文整理了Java中com.fasterxml.jackson.databind.ObjectMapper.canSerialize()方法的一些代码示例,展示了ObjectMapper.canSerialize()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ObjectMapper.canSerialize()方法的具体详情如下:
包路径:com.fasterxml.jackson.databind.ObjectMapper
类名称:ObjectMapper
方法名:canSerialize

ObjectMapper.canSerialize介绍

[英]Method that can be called to check whether mapper thinks it could serialize an instance of given Class. Check is done by checking whether a serializer can be found for the type.

NOTE: since this method does NOT throw exceptions, but internal processing may, caller usually has little information as to why serialization would fail. If you want access to internal Exception, call #canSerialize(Class,AtomicReference) instead.
[中]方法,可以调用该方法来检查映射程序是否认为它可以序列化给定类的实例。通过检查是否可以找到该类型的序列化程序来完成检查。
注意:由于此方法不会引发异常,但内部处理可能会引发异常,所以调用方通常很少了解序列化失败的原因。如果您想要访问内部异常,请调用#canSerialize(类,原子引用)。

代码示例

代码示例来源:origin: spring-projects/spring-framework

@Override
protected boolean canConvertTo(Object payload, @Nullable MessageHeaders headers) {
  if (!supportsMimeType(headers)) {
    return false;
  }
  AtomicReference<Throwable> causeRef = new AtomicReference<>();
  if (this.objectMapper.canSerialize(payload.getClass(), causeRef)) {
    return true;
  }
  logWarningIfNecessary(payload.getClass(), causeRef.get());
  return false;
}

代码示例来源:origin: spring-projects/spring-framework

@Override
public boolean canWrite(Class<?> clazz, @Nullable MediaType mediaType) {
  if (!canWrite(mediaType)) {
    return false;
  }
  AtomicReference<Throwable> causeRef = new AtomicReference<>();
  if (this.objectMapper.canSerialize(clazz, causeRef)) {
    return true;
  }
  logWarningIfNecessary(clazz, causeRef.get());
  return false;
}

代码示例来源:origin: Activiti/Activiti

public boolean isAbleToStore(Object value) {
 if (value == null) {
  return true;
 }
 if(JsonNode.class.isAssignableFrom(value.getClass()) || (objectMapper.canSerialize(value.getClass()) && serializePOJOsInVariablesToJson)){
  try {
   return objectMapper.writeValueAsString(value).length()>= minLength;
  } catch (JsonProcessingException e) {
   logger.error("Error writing json variable of type " +value.getClass(), e);
  }
 }
 return false;
}

代码示例来源:origin: Activiti/Activiti

public boolean isAbleToStore(Object value) {
 if (value == null) {
  return true;
 }
 if(JsonNode.class.isAssignableFrom(value.getClass()) || (objectMapper.canSerialize(value.getClass()) && serializePOJOsInVariablesToJson)){
  try {
   return objectMapper.writeValueAsString(value).length()<= maxLength;
  } catch (JsonProcessingException e) {
   logger.error("Error writing json variable of type " +value.getClass(), e);
  }
 }
 return false;
}

代码示例来源:origin: gchq/Gaffer

/**
 * @param clazz the clazz of the object to be serialised/deserialised
 * @return true if the clazz can be serialised/deserialised
 */
public static boolean canHandle(final Class clazz) {
  return getInstance().mapper.canSerialize(clazz);
}

代码示例来源:origin: spring-projects/spring-framework

@Override
public boolean canEncode(ResolvableType elementType, @Nullable MimeType mimeType) {
  Class<?> clazz = elementType.toClass();
  return supportsMimeType(mimeType) && (Object.class == clazz ||
      (!String.class.isAssignableFrom(elementType.resolve(clazz)) && getObjectMapper().canSerialize(clazz)));
}

代码示例来源:origin: org.springframework/spring-web

@Override
public boolean canWrite(Class<?> clazz, @Nullable MediaType mediaType) {
  if (!canWrite(mediaType)) {
    return false;
  }
  AtomicReference<Throwable> causeRef = new AtomicReference<>();
  if (this.objectMapper.canSerialize(clazz, causeRef)) {
    return true;
  }
  logWarningIfNecessary(clazz, causeRef.get());
  return false;
}

代码示例来源:origin: Activiti/Activiti

@Override
  public void validate(Object var,List<ActivitiException> errors) {

    //we can consider var json so long as it can be stored as json
    //this doesn't guarantee a string body to be valid json as jackson will wrap a string to make it valid
    //also doesn't guarantee it will be persisted as json
    //could be a pojo and then could be persisted as serializable if user sets serializePOJOsInVariablesToJson to false - see JsonType.java

    if (!objectMapper.canSerialize(var.getClass())){
      String message = var.getClass()+" is not serializable as json";
      errors.add(new ActivitiException(message));
      logger.error(message);
    }

    if (!objectMapper.canDeserialize(objectMapper.constructType(var.getClass()))){
      String message = var.getClass()+" is not deserializable as json";
      errors.add(new ActivitiException(message));
      logger.error(message);
    }
  }
}

代码示例来源:origin: immutables/immutables

@Override
 public <T> Codec<T> get(final Class<T> clazz) {
  final JavaType javaType = TypeFactory.defaultInstance().constructType(clazz);
  if (!mapper.canSerialize(clazz) || !mapper.canDeserialize(javaType)) {
   throw new CodecConfigurationException(String.format("%s (javaType: %s) not supported by Jackson Mapper", clazz, javaType));
  }
  return new JacksonCodec<>(clazz, mapper);
 }
};

代码示例来源:origin: org.springframework/spring-web

@Override
public boolean canEncode(ResolvableType elementType, @Nullable MimeType mimeType) {
  Class<?> clazz = elementType.toClass();
  return supportsMimeType(mimeType) && (Object.class == clazz ||
      (!String.class.isAssignableFrom(elementType.resolve(clazz)) && getObjectMapper().canSerialize(clazz)));
}

代码示例来源:origin: jooby-project/jooby

@Override
public void render(final Object value, final Renderer.Context ctx) throws Exception {
 if (ctx.accepts(type) && mapper.canSerialize(value.getClass())) {
  ctx.type(type);
  renderValue(value, ctx);
 }
}

代码示例来源:origin: prestodb/presto

@Test
public void testColumnHandleSerialize()
    throws Exception
{
  CassandraColumnHandle columnHandle = new CassandraColumnHandle("cassandra", "column", 42, CassandraType.BIGINT, null, false, true, false, false);
  assertTrue(objectMapper.canSerialize(CassandraColumnHandle.class));
  String json = objectMapper.writeValueAsString(columnHandle);
  testJsonEquals(json, COLUMN_HANDLE_AS_MAP);
}

代码示例来源:origin: prestodb/presto

@Test
public void testInformationSchemaSerialize()
    throws Exception
{
  InformationSchemaTableHandle informationSchemaTableHandle = new InformationSchemaTableHandle(
      "information_schema_catalog",
      "information_schema_schema",
      "information_schema_table");
  assertTrue(objectMapper.canSerialize(InformationSchemaTableHandle.class));
  String json = objectMapper.writeValueAsString(informationSchemaTableHandle);
  testJsonEquals(json, SCHEMA_AS_MAP);
}

代码示例来源:origin: prestodb/presto

@Test
public void testSystemSerialize()
    throws Exception
{
  SystemTableHandle internalHandle = new SystemTableHandle(CONNECTOR_ID, "system_schema", "system_table");
  assertTrue(objectMapper.canSerialize(SystemTableHandle.class));
  String json = objectMapper.writeValueAsString(internalHandle);
  testJsonEquals(json, SCHEMA_AS_MAP);
}

代码示例来源:origin: prestodb/presto

@Test
public void testTableHandleSerialize()
    throws Exception
{
  CassandraTableHandle tableHandle = new CassandraTableHandle("cassandra", "cassandra_schema", "cassandra_table");
  assertTrue(objectMapper.canSerialize(CassandraTableHandle.class));
  String json = objectMapper.writeValueAsString(tableHandle);
  testJsonEquals(json, TABLE_HANDLE_AS_MAP);
}

代码示例来源:origin: prestodb/presto

@Test
public void testTableHandleSerialize()
    throws Exception
{
  HiveTableHandle tableHandle = new HiveTableHandle("hive_schema", "hive_table");
  assertTrue(objectMapper.canSerialize(HiveTableHandle.class));
  String json = objectMapper.writeValueAsString(tableHandle);
  testJsonEquals(json, TABLE_HANDLE_AS_MAP);
}

代码示例来源:origin: prestodb/presto

@Test
public void testColumnHandleSerialize()
    throws Exception
{
  HiveColumnHandle columnHandle = new HiveColumnHandle("column", HiveType.HIVE_FLOAT, parseTypeSignature(StandardTypes.DOUBLE), -1, PARTITION_KEY, Optional.of("comment"));
  assertTrue(objectMapper.canSerialize(HiveColumnHandle.class));
  String json = objectMapper.writeValueAsString(columnHandle);
  testJsonEquals(json, COLUMN_HANDLE_AS_MAP);
}

代码示例来源:origin: prestodb/presto

@Test
public void testColumn2HandleSerialize()
    throws Exception
{
  CassandraColumnHandle columnHandle = new CassandraColumnHandle(
      "cassandra",
      "column2",
      0,
      CassandraType.SET,
      ImmutableList.of(CassandraType.INT),
      false,
      false,
      false,
      false);
  assertTrue(objectMapper.canSerialize(CassandraColumnHandle.class));
  String json = objectMapper.writeValueAsString(columnHandle);
  testJsonEquals(json, COLUMN2_HANDLE_AS_MAP);
}

代码示例来源:origin: Netflix/conductor

@Test
  public void testSimpleMapping() throws JsonGenerationException, JsonMappingException, IOException {
    ObjectMapper m = new JsonMapperProvider().get();
    assertTrue(m.canSerialize(Any.class));

    Struct struct1 = Struct.newBuilder().putFields(
        "some-key", Value.newBuilder().setStringValue("some-value").build()
    ).build();

    Any source = Any.pack(struct1);

    StringWriter buf = new StringWriter();
    m.writer().writeValue(buf, source);

    Any dest = m.reader().forType(Any.class).readValue(buf.toString());
    assertEquals(source.getTypeUrl(), dest.getTypeUrl());

    Struct struct2 = dest.unpack(Struct.class);
    assertTrue(struct2.containsFields("some-key"));
    assertEquals(
        struct1.getFieldsOrThrow("some-key").getStringValue(),
        struct2.getFieldsOrThrow("some-key").getStringValue()
    );
  }
}

代码示例来源:origin: org.springframework/spring-messaging

@Override
protected boolean canConvertTo(Object payload, @Nullable MessageHeaders headers) {
  if (!supportsMimeType(headers)) {
    return false;
  }
  AtomicReference<Throwable> causeRef = new AtomicReference<>();
  if (this.objectMapper.canSerialize(payload.getClass(), causeRef)) {
    return true;
  }
  logWarningIfNecessary(payload.getClass(), causeRef.get());
  return false;
}

相关文章

微信公众号

最新文章

更多

ObjectMapper类方法