有一个相对简单(我认为)的问题,但作为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)
非常感谢.
你不需要.
如果目标字段是数字的话,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)