【问题标题】:Convert String to Integer using FasterXML Jackson使用 FasterXML Jackson 将字符串转换为整数
【发布时间】:2015-08-17 22:25:40
【问题描述】:

我正在使用两个 JSON。

第一个具有字符串形式的 ID。

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

另一个的 ID 为 Integer。

"details": {
    "detailId": 316
}

两个 JSON 都使用 FasterXML 映射到两个不同的类。我希望两个 id 都是整数。现在它们是字符串。

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

【问题讨论】:

    标签: java json jackson fasterxml


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 是否需要使用asText(),或许有一个返回数字的方法。
      • 是的,但他的格式不允许,因为他有时有整数,有时有字符串。还是我弄错了?你似乎暗示相反:)
      • 我认为 OP 希望能够忽略 "。我会使用一个返回double 的方法并进行转换。可能有一些四舍五入。
      • 我认为"5" 的解析会失败,因为它不是数字字段。我会试试的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 2021-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多