当前位置: 首页 > 知识库问答 >
问题:

JAVA-不转换CamelCase到Snake_Case使用ObjectMap和SetProperty tyNamingStrategy-SNAKE_CASE

吕子真
2023-03-14

我正在尝试使用PropertyName策略。SNAKE_CASE转换地图

我的班级示例:

   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>>() {});  

} 

非常感谢。

共有1个答案

曹和正
2023-03-14

雷南。您显示的示例不起作用,因为ObjutMappER不认为MAP密钥是属性。它只转换类字段的名称。例如:

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

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

result: {"my_string":"asdfasdgADFAasdf"}

我可以建议你看看一个相关的问题,在Java中把绳子从蛇的情况转换成骆驼的情况。在这里,您将找到将字符串转换为不同大小写格式的方法。然后你可以迭代你的映射键并转换它们。

希望这对你有帮助!

 类似资料:
  • 我想将我的firebase数据对象映射到我的POJO。但是,我的firebase对象属性名是snake case,例如;“user_name”。我想在我的pojo上使用camelCase,例如;“用户名” 我找到了这样一个漂亮的答案,但是,我找不到任何关于snake_case到camelCase映射的示例。 我的波乔; 我使用下面的代码行进行映射。“content”匹配没有问题(有或没有@seri

  • 我希望避免在属性前面加,而只需设置Spring WebClient构建器,将所有snake_case转换为camelCases。 这可能吗?

  • 问题内容: 我在下划线有数据库字段。我在camelcase中有实体字段。我不能改变任何一个。 是否有东西,也许是类级别的注释,我可以使用它默认将实体列名称注释设置为等效于驼峰式? 例如,我有一个这样的实体: 我梦dream以求: 问题答案: 您可以使用hibernate的命名策略。这种命名策略类描述了如何为给定的Java名称生成数据库名称。 看到: 命名策略示例 第二个例子 很好的oracle命名

  • 是否有什么东西,也许是一个类级别的注释,我可以用来默认实体列名注释到camelcase等价的? 例如,我有一个这样的实体: 我梦想着:

  • 我理解为什么在使用regex将这样的字符串转换为时没有给出所需的输出,而后者给出的是。我本可以用string.substring做一些事情,或者只是替换最后一个字符,但我认为对于这样的场景有更好的解决方案。 代码如下: 问题:正在寻找一种更整洁的方法来获得所需的输出?

  • 默认情况下,我的Spring Boot项目通过将名称从camelCase转换为snake_case(例如,从转换为)将实体属性映射到表列。 我正在处理一个现有的DB,其中实体属性名称与表列名一样(例如,从到),因此我尝试使用注释显式指定名称: 这不起作用。我遵循了这里给出的建议: 我的现在被成功地考虑了,但是我丢失了对没有注释的属性的camelCase到snake_case隐式转换。 除非在注释中