java - Gson 反序列化 :Json Field Name Different from Java Object Field Name

标签 java json

传给我的json中有一个字段和我要反序列化这个json的Java对象的字段名不一样。假设我想反序列化:

{"bag": "LV"}

进入

Class MyClass {
    String backpack;
}

所以字段backpack在反序列化后应该有值LV

问题是 MyClass 来 self 无法更改或添加注释的库。我也无法控制传递给我的 json。我想知道如何配置 Gson 来做到这一点。所有其他字段都完美匹配。

最佳答案

class CustomStrategy implements FieldNamingStrategy {

    @Override
    public String translateName(Field field) {
        if (field.getName().equals("backpack")) {
            return "bag";
        }
        return field.getName();
    }
}

Gson gson = new GsonBuilder().setFieldNamingStrategy(new CustomStrategy()).create();

关于java - Gson 反序列化 :Json Field Name Different from Java Object Field Name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38731050/

相关文章:

python - 从字符串中解析时间,从输入文件中读取(纯文本)

Android:像 iOS 一样逐步获取 HTTP 响应

java - 使用 Hibernate 跨多个表生成代理键

Java Swing - jComboBox 不刷新

java - 这是工厂模式的正确用法吗?

java - Apache Velocity 宏默认参数值

java - 尝试使用 POST RestTemplate 调用外部 API 时出现 BadRequest 400

java - 使用 JSP Scriplet 和 JSON 模型属性

javascript - ExtJS Tabpanel 和 JSON 数据未加载?

java - 如何模拟不同的网络场景? ( java 语)