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

如何使用jackson序列化java bean并自定义映射键名?

微生恩
2023-03-14
public class Address{
        String city;
        String state;

        //setters and getters
    }   

Address address = new Address();
address.setCity("myCity");
address.setState("myState");

我正在使用以下方法创建地图:

ObjectMapper objectMapper = new ObjectMapper();
Map map = objectMapper.convertValue(address, HashMap.class);

它给出了以下输出:

{"city":"myCity", "state":"myState"}

我需要向键添加类变量名,如下所示:

{"address.city":"myCity", "address.state":"myState"}

共有1个答案

柴星津
2023-03-14

如果启用了jackson-annotations:

public class Address{
    @JsonProperty("address.city")
    String city;
    @JsonProperty("address.state")
    String state;

    //setters and getters
}
 类似资料:
  • 我正在序列化 和 与 添加了和以便能够序列化具有复杂键类型的映射。转换器是 我用的是杰克逊2.9.4。

  • 问题内容: 遵循在使用GSON解析JSON时使用枚举中的建议,我正在尝试序列化其键是使用Gson 的映射。 考虑以下类别: 两个问题: 为什么打印而不是? 我该如何打印? 问题答案: Gson对密钥使用了专用的序列化器。默认情况下,它使用将要用作键的对象的。对于类型,基本上就是常量的名称。,默认为类型,仅当将序列化为JSON值(对名称除外)时才使用。 使用来构建你的实例。

  • 问题内容: 我有两个要使用Jackson序列化为JSON的Java类: 我想将Item序列化为此JSON: 用户序列化为仅包含。我还将能够将所有用户对象序列化为JSON,例如: 所以我想我需要为此编写一个自定义的序列化程序并尝试过: 我使用来自Jackson How-to:Custom Serializers的 代码对JSON进行了序列化: 但是我得到这个错误: 如何在Jackson上使用自定义序

  • 什么是最好的方法来实现杰克逊? 谢谢

  • 我对Jackson有一个错误的理解,就是将json文件反序列化为poco。这是我的代码: 我的POCO命名为AnimalBean: }还有我的JSON文件: } 当我执行我的代码时,我有以下错误:未识别的字段“动物园”(类动画豆),未标记为可忽略的。我知道问题是我的json文件开始不直接由动物,但我不能改变它,因为它不是我的。我已经尝试把对象apper.configure(Deseriazatio