创建时,
RestTemplate您需要将设置
objectMapper为。另外,您应该将自定义ObjectMapper声明为a,
@Bean以便由Spring将其构造为单例并为您管理。对进行相同的操作
PropertyNamingStrategy,而不是对其进行“更新”并声明该类为静态类。
public class RestConfig{ @Bean public ObjectMapper jacksonObjectMapper() { return new ObjectMapper().setPropertyNamingStrategy(propertyNamingStrategy()); } @Bean public PropertyNamingStrategy propertyNamingStrategy() { return new UpperCaseUnderscoreStrategy(); } @Bean public RestTemplate restTemplate() { RestTemplate restTemplate = new RestTemplate(); List<HttpMessageConverter<?>> messageConverters = new ArrayList<>(); MappingJackson2HttpMessageConverter jsonMessageConverter = new MappingJackson2HttpMessageConverter(); jsonMessageConverter.setObjectMapper(jacksonObjectMapper()); messageConverters.add(jsonMessageConverter); restTemplate.setMessageConverters(messageConverters); return restTemplate; }}您的课程在单独的文件中吗?它不需要是静态的。
public static class UpperCaseUnderscoreStrategy extends PropertyNamingStrategy.PropertyNamingStrategybase { @Override public String translate(String input) { if (input == null || input.length() == 0) { return input; // garbage in, garbage out } // // we always take the first character; // this preserves initial underscore // StringBuilder sb = new StringBuilder(); final int length = input.length(); int i = 0; // // skip initial underscores // while ((i < length) && ('_' == input.charAt(i))) { sb.append(input.charAt(i)); i += 1; } while (i < length) { // // find underscores, remove and capitalize next letter // while ((i < length) && ('_' != input.charAt(i)) && !Character.isUpperCase(input.charAt(i))) { sb.append(input.charAt(i)); i += 1; } if(i < length) { if('_' == input.charAt(i)) { // underscore to uppercase // // skip underscores // while ((i < length) && ('_' == input.charAt(i))) { // skip underscores i += 1; } // // capitalize // if (i < length) { sb.append(Character.toUpperCase(input.charAt(i))); i += 1; } } else // uppercase to unscore + lowercase { sb.append('_'); sb.append(Character.toLowerCase(input.charAt(i))); i += 1; } } } return sb.toString(); } }


