类com.fasterxml.jackson.databind.PropertyNamingStrategy源码实例Demo

下面列出了怎么用com.fasterxml.jackson.databind.PropertyNamingStrategy的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: line-bot-sdk-java   文件: ModelObjectMapperTest.java
@Test
public void createdInstanceIsIsolatedTest() {
    final ObjectMapper first = ModelObjectMapper.createNewObjectMapper();
    final ObjectMapper second = ModelObjectMapper.createNewObjectMapper();

    // Precondition
    assertThat(first).isNotEqualTo(second);
    assertThat(first.getPropertyNamingStrategy())
            .isEqualTo(second.getPropertyNamingStrategy())
            .isNull();

    // Do
    first.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);

    // Verify
    assertThat(first.getPropertyNamingStrategy())
            .isNotEqualTo(second.getPropertyNamingStrategy());
}
 
private static DivolteConfiguration mapped(final Config input) throws IOException {
    final Config resolved = input.resolve();
    final ObjectMapper mapper = new ObjectMapper();

    // snake_casing
    mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);

    // Ignore unknown stuff in the config
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);

    // Deserialization for Duration
    final SimpleModule module = new SimpleModule("Configuration Deserializers");
    module.addDeserializer(Duration.class, new DurationDeserializer());
    module.addDeserializer(Properties.class, new PropertiesDeserializer());

    mapper.registerModules(
            new Jdk8Module(),                   // JDK8 types (Optional, etc.)
            new GuavaModule(),                  // Guava types (immutable collections)
            new ParameterNamesModule(),         // Support JDK8 parameter name discovery
            module                              // Register custom deserializers module
            );

    return mapper.readValue(new HoconTreeTraversingParser(resolved.root()), DivolteConfiguration.class);
}
 
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.
            json().
            //propertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE).
            propertyNamingStrategy(PropertyNamingStrategy.LOWER_CAMEL_CASE).
            //featuresToEnable(SerializationFeature.INDENT_OUTPUT).
            //featuresToEnable(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY).
            build();
    SimpleModule module = new SimpleModule();
    module.addSerializer(Set.class,
            new StdDelegatingSerializer(Set.class, new StdConverter<Set, List>() {
                @Override
                public List convert(Set value) {
                    LinkedList list = new LinkedList(value);
                    Collections.sort(list);
                    return list;
                }
            })
    );
    objectMapper.registerModule(module);
    HttpMessageConverter c = new MappingJackson2HttpMessageConverter(
            objectMapper
    );
    converters.add(c);
}
 
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.
            json().
            //propertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE).
            propertyNamingStrategy(PropertyNamingStrategy.LOWER_CAMEL_CASE).
            //featuresToEnable(SerializationFeature.INDENT_OUTPUT).
            //featuresToEnable(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY).
            build();
    SimpleModule module = new SimpleModule();
    module.addSerializer(Set.class,
            new StdDelegatingSerializer(Set.class, new StdConverter<Set, List>() {
                @Override
                public List convert(Set value) {
                    LinkedList list = new LinkedList(value);
                    Collections.sort(list);
                    return list;
                }
            })
    );
    objectMapper.registerModule(module);
    HttpMessageConverter c = new MappingJackson2HttpMessageConverter(
            objectMapper
    );
    converters.add(c);
}
 
源代码5 项目: patreon-java   文件: PatreonAPI.java
/**
 * For use in test.
 */
PatreonAPI(String accessToken, RequestUtil requestUtil) {
  this.accessToken = accessToken;
  this.requestUtil = requestUtil;

  ObjectMapper objectMapper = new ObjectMapper();
  objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
  objectMapper.configure(com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
  this.converter = new ResourceConverter(
    objectMapper,
    User.class,
    Campaign.class,
    Pledge.class
  );
  this.converter.enableDeserializationOption(DeserializationFeature.ALLOW_UNKNOWN_INCLUSIONS);
}
 
源代码6 项目: choerodon-starters   文件: JacksonJson.java
public JacksonJson() {

        objectMapper = new ObjectMapper();

        objectMapper.setSerializationInclusion(Include.NON_NULL);
        objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);

        objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
        objectMapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        objectMapper.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true);

        SimpleModule module = new SimpleModule("GitLabApiJsonModule");
        module.addSerializer(Date.class, new JsonDateSerializer());
        module.addDeserializer(Date.class, new JsonDateDeserializer());
        objectMapper.registerModule(module);
    }
 
@Override
public QuarkusJsonPlatformDescriptor load(final QuarkusJsonPlatformDescriptorLoaderContext context) {

    final QuarkusJsonPlatformDescriptor platform = context
            .parseJson(is -> {
                try {
                    ObjectMapper mapper = new ObjectMapper()
                            .enable(JsonParser.Feature.ALLOW_COMMENTS)
                            .enable(JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS)
                            .setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE);
                    return mapper.readValue(is, QuarkusJsonPlatformDescriptor.class);
                } catch (IOException e) {
                    throw new RuntimeException("Failed to parse JSON stream", e);
                }
            });

    if (context.getArtifactResolver() != null) {
        platform.setManagedDependencies(context.getArtifactResolver().getManagedDependencies(platform.getBomGroupId(),
                platform.getBomArtifactId(), null, "pom", platform.getBomVersion()));
    }
    platform.setResourceLoader(context.getResourceLoader());
    platform.setMessageWriter(context.getMessageWriter());

    return platform;
}
 
源代码8 项目: spydra   文件: GcloudExecutor.java
public Optional<Cluster> createCluster(String name, String region, Map<String, String> args)
    throws IOException {
  Map<String, String> createOptions = new HashMap<>(args);
  createOptions.put(SpydraArgument.OPTION_REGION, region);
  List<String> command = Arrays.asList(
      "--format=json", "beta", "dataproc", "clusters", "create", name);
  StringBuilder outputBuilder = new StringBuilder();
  boolean success = ProcessHelper.executeForOutput(
      buildCommand(command, createOptions, Collections.emptyList()),
      outputBuilder);
  String output = outputBuilder.toString();
  if (success) {
    Cluster cluster = JsonHelper.objectMapper()
        .setPropertyNamingStrategy(PropertyNamingStrategy.LOWER_CAMEL_CASE)
        .readValue(output, Cluster.class);
    return Optional.of(cluster);
  } else {
    if (output.contains("ALREADY_EXISTS")) {
      throw new GcloudClusterAlreadyExistsException(output);
    }
    LOGGER.error("Dataproc cluster creation call failed. Command line output:");
    LOGGER.error(output);
    return Optional.empty();
  }
}
 
源代码9 项目: pardot-java-client   文件: JacksonFactory.java
/**
 * Creates properly configured Jackson XML Mapper instances.
 * @return XmlMapper instance.
 */
public static XmlMapper newInstance() {
    if (instance != null) {
        return instance;
    }

    // Create new mapper
    final JacksonXmlModule module = new JacksonXmlModule();
    module.setDefaultUseWrapper(false);
    module.addDeserializer(ProspectCustomFieldValue.class, new ProspectCustomFieldDeserializer());

    final XmlMapper mapper = new XmlMapper(module);

    // Configure it
    mapper
        .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
        .setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
        .registerModule(new JodaModule())
        .setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

    return mapper;
}
 
源代码10 项目: bender   文件: BenderConfig.java
public static BenderConfig load(String filename, String data) {
  /*
   * Configure Mapper and register polymorphic types
   */
  ObjectMapper mapper = BenderConfig.getObjectMapper(filename);
  mapper.setPropertyNamingStrategy(
      PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);

  /*
   * Optionally don't validate the config. Assume user has already
   * done this.
   */
  String v = System.getenv("BENDER_SKIP_VALIDATE");
  if (v != null && v.equals("true")) {
    return BenderConfig.load(filename, data, mapper, false);
  } else {
    return BenderConfig.load(filename, data, mapper, true);
  }
}
 
public void testSnakeCaseNamingStrategy() throws Exception
{
    String json = "{\"lower_endpoint\": 12, \"lower_bound_type\": \"CLOSED\", \"upper_endpoint\": 33, \"upper_bound_type\": \"CLOSED\"}";

    GuavaModule mod = new GuavaModule().defaultBoundType(BoundType.CLOSED);
    ObjectMapper mapper = JsonMapper.builder()
            .addModule(mod)
            .propertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
            .build();

    @SuppressWarnings("unchecked")
    Range<Integer> r = (Range<Integer>) mapper.readValue(json, Range.class);

    assertEquals(Integer.valueOf(12), r.lowerEndpoint());
    assertEquals(Integer.valueOf(33), r.upperEndpoint());

    assertEquals(BoundType.CLOSED, r.lowerBoundType());
    assertEquals(BoundType.CLOSED, r.upperBoundType());
}
 
源代码12 项目: jackson-datatypes-collections   文件: TestRange.java
public void testSnakeCaseNamingStrategy() throws Exception
{
    String json = "{\"lower_endpoint\": 12, \"lower_bound_type\": \"CLOSED\", \"upper_endpoint\": 33, \"upper_bound_type\": \"CLOSED\"}";

    GuavaModule mod = new GuavaModule().defaultBoundType(BoundType.CLOSED);
    ObjectMapper mapper = JsonMapper.builder()
            .addModule(mod)
            .propertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
            .build();

    @SuppressWarnings("unchecked")
    Range<Integer> r = (Range<Integer>) mapper.readValue(json, Range.class);

    assertEquals(Integer.valueOf(12), r.lowerEndpoint());
    assertEquals(Integer.valueOf(33), r.upperEndpoint());

    assertEquals(BoundType.CLOSED, r.lowerBoundType());
    assertEquals(BoundType.CLOSED, r.upperBoundType());
}
 
源代码13 项目: container   文件: ObjectMapperProvider.java
private static ObjectMapper createDefaultMapper() {
    final ObjectMapper om = new HALMapper();
    om.setSerializationInclusion(JsonInclude.Include.NON_NULL);
    om.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
    LOG.info("Created Jackson ObjectMapper");
    return om;
}
 
源代码14 项目: vividus   文件: JsonUtilsTests.java
@Test
void testToObjectListSuccess()
{
    jsonUtils = new JsonUtils(PropertyNamingStrategy.SNAKE_CASE);
    int expectedSize = 2;
    List<TestClass> actualList = jsonUtils.toObjectList(JSON_LIST_STRING, TestClass.class);
    assertEquals(actualList.size(), expectedSize);
}
 
源代码15 项目: vividus   文件: JsonUtilsTests.java
@Test
void testToObjectListInputStreamSuccess()
{
    InputStream jsonListStream = new ByteArrayInputStream(JSON_LIST_STRING.getBytes(StandardCharsets.UTF_8));
    jsonUtils = new JsonUtils(PropertyNamingStrategy.SNAKE_CASE);
    int expectedSize = 2;
    List<TestClass> actualList = jsonUtils.toObjectList(jsonListStream, TestClass.class);
    assertEquals(actualList.size(), expectedSize);
}
 
@Test
public void propertyNamingStrategy() {
	PropertyNamingStrategy strategy = new PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy();
	ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().propertyNamingStrategy(strategy).build();
	assertSame(strategy, objectMapper.getSerializationConfig().getPropertyNamingStrategy());
	assertSame(strategy, objectMapper.getDeserializationConfig().getPropertyNamingStrategy());
}
 
@Test
public void propertyNamingStrategy() {
	PropertyNamingStrategy strategy = new PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy();
	this.factory.setPropertyNamingStrategy(strategy);
	this.factory.afterPropertiesSet();

	assertSame(strategy, this.factory.getObject().getSerializationConfig().getPropertyNamingStrategy());
	assertSame(strategy, this.factory.getObject().getDeserializationConfig().getPropertyNamingStrategy());
}
 
源代码18 项目: depgraph-maven-plugin   文件: StyleConfiguration.java
private static ObjectMapper createObjectMapper() {
  SimpleModule module = new SimpleModule()
      .addKeySerializer(NodeResolution.class, new NodeResolutionSerializer())
      .addDeserializer(NodeResolution.class, new NodeResolutionDeserializer());

  return new ObjectMapper()
      .registerModule(module)
      .setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE)
      .setSerializationInclusion(Include.NON_EMPTY)
      .setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
}
 
源代码19 项目: jsonschema-generator   文件: JacksonModule.java
/**
 * Look-up the given type's {@link JsonNaming} annotation and instantiate the declared {@link PropertyNamingStrategy}.
 *
 * @param declaringType type declaring fields for which the applicable naming strategy should be looked-up
 * @return annotated naming strategy instance (or {@code null})
 */
private PropertyNamingStrategy getAnnotatedNamingStrategy(Class<?> declaringType) {
    return Optional.ofNullable(declaringType.getAnnotation(JsonNaming.class))
            .map(JsonNaming::value)
            .map(strategyType -> {
                try {
                    return strategyType.newInstance();
                } catch (InstantiationException | IllegalAccessException ex) {
                    return null;
                }
            })
            .orElse(null);
}
 
源代码20 项目: base-admin   文件: SqlUtil.java
/**
 *
 * @param entity 自动拼接实体对象字段
 * @param ignoreProperties 动态参数  忽略拼接的字段
 * @return sql
 */
public static StringBuilder appendFields(Object entity, String... ignoreProperties) {
    StringBuilder sql = new StringBuilder();
    List<String> ignoreList = Arrays.asList(ignoreProperties);
    try {
        sql.append("select ");

        for (Field field : entity.getClass().getDeclaredFields()) {
            //获取授权
            field.setAccessible(true);
            String fieldName = field.getName();//属性名称
            Object fieldValue = field.get(entity);//属性的值
            //非临时字段、非忽略字段
            if (!field.isAnnotationPresent(Transient.class) && !ignoreList.contains(fieldName)) {
                //拼接查询字段  驼峰属性转下划线
                sql.append(new PropertyNamingStrategy.SnakeCaseStrategy().translate(fieldName).toLowerCase()).append(" ").append(",");
            }
        }
        //处理逗号(删除最后一个字符)
        sql.deleteCharAt(sql.length() - 1);

        String tableName = entity.getClass().getAnnotation(Table.class).name();
        sql.append("from ").append(tableName).append(" where '1' = '1' ");
    } catch (IllegalAccessException e) {
        //输出到日志文件中
        log.error(ErrorUtil.errorInfoToString(e));
    }
    return sql;
}
 
/** @since 4.3 */
@Override
public PropertyNamingStrategy namingStrategyInstance(MapperConfig<?> config,
		Annotated annotated, Class<?> implClass) {

	return (PropertyNamingStrategy) this.beanFactory.createBean(implClass);
}
 
@Test
public void propertyNamingStrategy() {
	PropertyNamingStrategy strategy = new PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy();
	ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().propertyNamingStrategy(strategy).build();
	assertSame(strategy, objectMapper.getSerializationConfig().getPropertyNamingStrategy());
	assertSame(strategy, objectMapper.getDeserializationConfig().getPropertyNamingStrategy());
}
 
@Test
public void propertyNamingStrategy() {
	PropertyNamingStrategy strategy = new PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy();
	this.factory.setPropertyNamingStrategy(strategy);
	this.factory.afterPropertiesSet();

	assertSame(strategy, this.factory.getObject().getSerializationConfig().getPropertyNamingStrategy());
	assertSame(strategy, this.factory.getObject().getDeserializationConfig().getPropertyNamingStrategy());
}
 
源代码24 项目: monasca-persister   文件: InfluxV9AlarmRepo.java
@Inject
public InfluxV9AlarmRepo(
    final Environment env,
    final InfluxV9RepoWriter influxV9RepoWriter) {

  super(env);

  this.influxV9RepoWriter = influxV9RepoWriter;

  this.objectMapper.setPropertyNamingStrategy(
      PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
}
 
源代码25 项目: baidu-chain-dog   文件: InvokeBuilder.java
@Bean
CodeParseInvoke codeParseInvoke() {
    ObjectMapper mapper = new ObjectMapper();
    mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(codeParseUrl)
            .addConverterFactory(JacksonConverterFactory.create(mapper))
            .build();
    return retrofit.create(CodeParseInvoke.class);
}
 
源代码26 项目: halo   文件: JsonUtils.java
/**
 * Creates a default json mapper.
 *
 * @param strategy property naming strategy
 * @return object mapper
 */
@NonNull
public static ObjectMapper createDefaultJsonMapper(@Nullable PropertyNamingStrategy strategy) {
    // Create object mapper
    ObjectMapper mapper = new ObjectMapper();
    // Configure
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    // Set property naming strategy
    if (strategy != null) {
        mapper.setPropertyNamingStrategy(strategy);
    }
    return mapper;
}
 
源代码27 项目: quarkus   文件: ExtensionDescriptorMojo.java
private ObjectMapper getMapper(boolean yaml) {

        if (yaml) {
            YAMLFactory yf = new YAMLFactory();
            return new ObjectMapper(yf)
                    .setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE);
        } else {
            return new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT)
                    .enable(JsonParser.Feature.ALLOW_COMMENTS).enable(JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS)
                    .setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE);
        }
    }
 
源代码28 项目: quarkus   文件: GenerateExtensionsJsonMojo.java
private ObjectMapper getMapper(boolean yaml) {

        if (yaml) {
            YAMLFactory yf = new YAMLFactory();
            return new ObjectMapper(yf)
                    .setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE);
        } else {
            return new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT)
                    .enable(JsonParser.Feature.ALLOW_COMMENTS).enable(JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS)
                    .setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE);
        }
    }
 
/**
 * Provides the serialization configurations required by the Eureka Server. JSON
 * content exchanged with eureka requires a root node matching the entity being
 * serialized or deserialized. Achived with
 * {@link SerializationFeature#WRAP_ROOT_VALUE} and
 * {@link DeserializationFeature#UNWRAP_ROOT_VALUE}.
 * {@link PropertyNamingStrategy.SnakeCaseStrategy} is applied to the underlying
 * {@link ObjectMapper}.
 * @return a {@link MappingJackson2HttpMessageConverter} object
 */
public MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter() {
	MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
	converter.setObjectMapper(new ObjectMapper()
			.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE));

	SimpleModule jsonModule = new SimpleModule();
	jsonModule.setSerializerModifier(createJsonSerializerModifier()); // keyFormatter,
	// compact));
	converter.getObjectMapper().registerModule(jsonModule);

	converter.getObjectMapper().configure(SerializationFeature.WRAP_ROOT_VALUE, true);
	converter.getObjectMapper().configure(DeserializationFeature.UNWRAP_ROOT_VALUE,
			true);
	converter.getObjectMapper().addMixIn(Applications.class,
			ApplicationsJsonMixIn.class);
	converter.getObjectMapper().addMixIn(InstanceInfo.class,
			InstanceInfoJsonMixIn.class);

	// converter.getObjectMapper().addMixIn(DataCenterInfo.class,
	// DataCenterInfoXmlMixIn.class);
	// converter.getObjectMapper().addMixIn(InstanceInfo.PortWrapper.class,
	// PortWrapperXmlMixIn.class);
	// converter.getObjectMapper().addMixIn(Application.class,
	// ApplicationXmlMixIn.class);
	// converter.getObjectMapper().addMixIn(Applications.class,
	// ApplicationsXmlMixIn.class);

	return converter;
}
 
源代码30 项目: zheshiyigeniubidexiangmu   文件: HuobiApiClient.java
static ObjectMapper createObjectMapper() {
    final ObjectMapper mapper = new ObjectMapper();
    mapper.setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE);
    mapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);
    // disabled features:
    mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
    mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
    mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
    return mapper;
}
 
 同包方法