使用 Jackson 进行 JSON 字符串序列化(骆驼式)和反序列化(蛇形式)

rig*_*gal 5 java serialization json jackson json-deserialization

我正在尝试将 json 字符串反序列化为 POJO,然后使用 Jackson 将其序列化回 json 字符串,但在此过程中我希望生成的 json 字符串已更改键值。

例如输入json字符串:

{"some_key":"value"} 
Run Code Online (Sandbox Code Playgroud)

这是我的 POJO 的样子

public class Sample {    
    @JsonProperty("some_key")
    private String someKey;         
    public String getSomeKey(){
        return someKey ;
    };
}
Run Code Online (Sandbox Code Playgroud)

当我再次序列化它时,我希望 json 字符串是这样的

{"someKey":"value"} .
Run Code Online (Sandbox Code Playgroud)

我有什么办法可以实现这个目标吗?

rig*_*gal 2

我能够通过根据输入 json 字符串重命名 setter 函数来进行反序列化。

class Test{
    private String someKey;
    // for deserializing from field "some_key"
    public void setSome_key( String someKey) {
       this.someKey = someKey;
    }


    public String getSomeKey(){
        return someKey;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然这在技术上可行,但您的方法名称不遵循 Java bean 命名约定(请参阅 http://download.oracle.com/otn-pub/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/ 中的第 8.8 节) beans.101.pdf)。这可能会导致与其他框架的兼容性问题,并且如果您的工作将由其他开发人员维护,可能会导致混乱。 (3认同)