gpt4 book ai didi

java - 将 Map 值序列化为 Shape.STRING

转载 作者:行者123 更新时间:2023-11-29 04:10:29 25 4
gpt4 key购买 nike

我知道可以使用 @JsonFormat(shape = Shape.STRING) 之类的东西来控制 Jackson 序列化的 BigDecimal 的形状。

我想不通的是如何在 Map 值的 BigDecimal 上启用它,而无需配置 ObjectMapper全局。

mapper.configOverride(BigDecimal.class)
.setFormat(JsonFormat.Value.forShape(JsonFormat.Shape.STRING));

我正在寻找一些东西,我想是一两个注释,以确保该属性始终序列化为字符串,无论 ObjectMapper 配置如何。

// what @Json... annotations here
private Map<String, BigDecimal> foo = ImmutableMap.of(
"USD", new BigDecimal("1.50"),
"GBP", new BigDecimal("6.66")
);

// will produce this
{
"USD": "1.50",
"GBP": "6.66"
}

最佳答案

似乎无法将该注释用于 map 值。

但在这种特殊情况下,您可以将注释放在 map 本身上:

@JsonFormat(shape = JsonFormat.Shape.STRING)
private Map<String, BigDecimal> foo = ImmutableMap.of(
"USD", new BigDecimal("1.50"),
"GBP", new BigDecimal("6.66")
);

它会产生你所期望的。

( jackson 2.9.5+)

关于java - 将 Map<String, BigDecimal> 值序列化为 Shape.STRING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55398264/

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