gpt4 book ai didi

java - Spring Boot如何序列化对象

转载 作者:行者123 更新时间:2023-12-02 02:05:22 24 4
gpt4 key购买 nike

我有一个对象:

public class MoQueryData {
private Map<String,Map<String,MoQuery>> data;

public MoQueryData() {
data = new HashMap<>();
}

public MoQueryData(Map<String, Map<String, MoQuery>> data) {
this.data = data;
}

public Map<String, Map<String, MoQuery>> getData() {
return data;
}

public List<MoQuery> getDataForAllVendors() {
return data.values().stream().flatMap(l -> l.values().stream()).collect(Collectors.toList());
}

}

在 Controller 中使用它时,如下所示:

@RequestMapping(method = RequestMethod.GET ,value = "/queries/")
public MoQueryData getMoQueriesData() {
return moQuery.getData();
}

我们得到以下 json

 {
"data": {....},
"dataForAllVendors": [....]
}

我不明白为什么调用 getDataForAllVendors ?使用@JsonIgnore,它不会发生,但我仍然试图了解幕后发生的事情。

最佳答案

由于类 getDataForAllVendors() 中类似 getter 的命名方法,您将获取 dataForAllVendors 字段。默认情况下,Jackson 会发现并序列化所有可访问字段,因此类中的 getter 命名方法也会被发现。重命名此方法或将其标记为忽略将阻止序列化。

关于java - Spring Boot如何序列化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50896617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com