【问题标题】:JAVA - Not converting CamelCase to Snake_Case using ObjectMapping and SetPropertyNamingStrategy - SNAKE_CASEJAVA - 不使用 ObjectMapping 和 SetPropertyNamingStrategy 将 CamelCase 转换为 Snake_Case - SNAKE_CASE
【发布时间】:2022-01-25 02:50:28
【问题描述】:

我正在尝试使用 PropertyNamingStrategy.SNAKE_CASE 将 Map 从 CamelCase 转换为 Snake_Case - 但没有成功。它是一个“通用”MAP。谁能帮帮我?

我的课堂示例:

   private ResponseEntity<Class> doPostRequest(Map<String, Object> payload) {
        
        ObjectMapper payloadConversor = new ObjectMapper();
        
        payloadConversor.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);      
        
        Map<String, Object> payloadConverted = payloadConversor
                .convertValue(payload, new TypeReference<Map<String, Object>>() {});  

} 

谢谢!

【问题讨论】:

标签: java spring jackson objectmapper


【解决方案1】:

仁南。您展示的示例不起作用,因为 ObjectMapper 不认为映射键是属性。它只转换类字段的名称。例如:

@Data
@AllArgsConstructor
public static class MyClass {
    private String myString;
}

System.out.println(objectMapper.writeValueAsString(new MyClass("asdfasdgADFAasdf")));

result: {"my_string":"asdfasdgADFAasdf"}

我可以建议您查看一个相关问题Converting a string from snake case to camel case in Java。在这里,您将找到将字符串转换为不同大小写格式的方法。然后你可以遍历你的地图键并转换它们。

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    相关资源
    最近更新 更多