使用FasterXML Jackson将String转换为Integer

时间:2015-08-17 22:25:40

标签: java json jackson fasterxml

我正在使用两个JSON。

第一个将ID作为字符串。

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

另一个的ID为Integer。

"details": {
    "detailId": 316
}

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

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

2 个答案:

答案 0 :(得分:8)

杰克逊实际上处理强制,因此如果属性具有类型intjava.lang.Integer,它将解析JSON字符串,而不仅仅是使用JSON数字。 也可以使用@JsonFormat(shape=Shape.STRING)作为数字字段进行反向。

答案 1 :(得分:2)

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

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