java - 如何将 JSON 响应中的所有键转换为大写? (JAVA)

标签 java json jackson key pojo

例如,我有以下 json 响应:

{
    StaTuS:succees,
    LanGuaGes: {
          Key1: English,
          key2: Spanish,
          kEy3: Indian
    }
} 

响应可以有许多嵌套元素。我想知道如何以这样的方式进行编码,使我的响应中的所有键都可以转换为大写,以便它与我在 POJO 类中使用的命名约定相匹配。

像这样:

{
   STATUS:succees,
   LANGUAGES: {
          KEY1: English,
          KEY2: Spanish,
          KEY3: Indian
   }
} 

最佳答案

您可以使用自定义 PropertyNamingStrategy:

public class UpperCaseStrategy extends PropertyNamingStrategyBase {

    @Override
    public String translate(String propertyName) {

        return propertyName.toUpperCase();
    }

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(new CustomNamingStrategy());

参见here以供引用。

请注意,在 com.fasterxml.jackson.databind.PropertyNamingStrategy 中实现了小写策略,如下所示:

/**
 * Simple strategy where external name simply only uses lower-case characters,
 * and no separators.
 * Conversion from internal name like "someOtherValue" would be into external name
 * if "someothervalue".
 * 
 * @since 2.4
 */
public static class LowerCaseStrategy extends PropertyNamingStrategyBase
{
    @Override
    public String translate(String input) {
        return input.toLowerCase();
    }
}

关于java - 如何将 JSON 响应中的所有键转换为大写? (JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34677874/

相关文章:

java - 使用基类实例在派生类中访问的 protected 成员

java - 无论我做什么,DividerItemDecoration 都不起作用

javascript - "SyntaxError: Unexpected token ' : '. Parse error." JSON & ajax

php - JSON 编码帮助

java - 如何使用Hibernate4Module

java - LocalContainerEntityManagerFactoryBean.setPersistenceUnitRootLocation 已在 Spring-Boot 1.4.1 中删除

java - 读取文本文件并存储在 HashMap 中。然后按顺序排序

javascript - 在 PHP 和 Ajax 中使用 Json 传递值

java - 使用 Jackson 序列化 xml 使用不带注释的属性

java - Jackson 可以使用它没有编写的 boolean JSON 属性反序列化为具体子类吗?