使用 FasterXML Jackson 将字符串转换为整数

Convert String to Integer using FasterXML Jackson

我正在使用两个 JSON。

第一个 ID 为字符串。

"details": {
    "id": "316.0"
}

另一个 ID 为 Integer。

"details": {
    "detailId": 316
}

两个 JSON 都使用 FasterXML 映射到两个不同的 类。我希望两个 id 都是整数。现在他们是 String.

如何强制 ForceXML 将“316.0”转换为整数,以便我可以轻松比较两个属性?

由于格式并不总是相同,因此最好的方法是将其作为字符串检索并解析:

int detailId = (int) Float.parseFloat(node.path("details").asText());

Jackson 实际上处理强制转换,因此如果 属性 的类型为 intjava.lang.Integer,它将解析 JSON 字符串,而不仅仅是使用 JSON数字。 反向也是可能的,对数字字段使用 @JsonFormat(shape=Shape.STRING)