首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Jackson anotations在java Map中展开键和值对象?

如何使用Jackson anotations在java Map中展开键和值对象?
EN

Stack Overflow用户
提问于 2020-07-17 04:48:39
回答 1查看 43关注 0票数 1

我有像这样的豆子

代码语言:javascript
复制
public class PickupDate {

    private LocalDate date;
}

我想将Map对象序列化为

代码语言:javascript
复制
{
  "2020-07-17": 1
}

不是为了

代码语言:javascript
复制
{
  "PickupDate@1ecd0470[date=2019-12-01]": {
    "capacity": 0
  }
EN

回答 1

Stack Overflow用户

发布于 2020-07-17 05:33:41

您应该覆盖PickupDate的toString()方法。容量来自你拥有的其他对象。如果你提供了实际的代码,情况会更清楚。

主类:

代码语言:javascript
复制
public static void main(String[] args) throws JsonProcessingException {
    ObjectMapper mapper = new ObjectMapper();
    Map<PickupDate, Integer> map = new HashMap<>();
    map.put(new PickupDate(LocalDate.now()), 1);
    System.out.println(mapper.writeValueAsString(map));
}

代答:

代码语言:javascript
复制
class PickupDate {
private LocalDate date;
public PickupDate(LocalDate date) {
    this.date = date;
}

//Here you put whatever you want to be in the JSON
@Override
public String toString() {
    return date.toString();
}
}

结果:{"2020-07-16":1}

无论从toString()方法返回什么,都是用JSON编写的。因此,如果您想要更改日期格式或其他任何内容,您必须在那里进行更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62943260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档