JSON字段 - 将字符串解析为Int

Php*_*ete 2 java json jackson

有一个相对简单(我认为)的问题,但作为JSON的新手似乎无法找到一个简洁的解决方案.

我有一个Entity对象,其Id字段为Integer类型.但是,要映射的传入Json数据的id为字符串.

有了这个简单的地图似乎是不可能的.有没有办法在映射之前将JSON中的字符串数据更改为整数?

示例Json数据

{"Id": "021", "userAge": 99}
Run Code Online (Sandbox Code Playgroud)

示例实体

@Entity
public class User{

    @id
    int userId;
    int userAge;
}
Run Code Online (Sandbox Code Playgroud)

非常感谢.

Sot*_*lis 6

你不需要.

如果目标字段是数字的话,Jackson非常聪明,可以将JSON字符串转换为数值.

领先者0的意义并不明显,但杰克逊只会忽略它.

此外,如果您的字段名称在Java中不同,则需要@JsonProperty("theJsonName").

public class Jackson {
    public static void main(String[] args) throws Exception {
        String json = "{\"userId\": \"021\", \"userAge\": 99}";
        ObjectMapper mapper = new ObjectMapper();
        User user = mapper.readValue(json, User.class);
        System.out.println(user.userId);
    }
}

class User {
    int userId;
    int userAge;
    public void setUserId(int userId) {
        this.userId = userId;
    }
    public void setUserAge(int userAge) {
        this.userAge = userAge;
    }
}
Run Code Online (Sandbox Code Playgroud)

版画

21
Run Code Online (Sandbox Code Playgroud)