如何配置Jackson json解串器,以使特殊字符将“ ##”,“#null”,“-”设置为null
例如:
说我的json是
{ "userId":"kp","fname":"k","lname":"p","mname":"##", rndNum:"-"}
Java类是
class User{
private String userId;
private String fname;
private String lname;
private String mname;
private Integer rndNum;
//getters/ and setters
}
我希望输出是
user.getUserId() = kp
user.getMname() = null
user.getRndNum() = null
最佳答案
最简单的方法是为此使用构造函数和验证程序。例如
public static String validate(String name) {
if (name != null && !name.isEmpty() && (name.charAt(0) == '#' || name.charAt(0) == '-')) {
return null;
}
return name;
}
class User {
User(String userId, String fname, String lname, String mname) {
this.userId = validate(userId);
this.fname = validate(fname);
this.lname = validate(lname);
this.mname = validate(mname);
}
我也认为这可以适当地分隔功能。杰克逊(Jackson)代码和注释应该处理JSON中发生的任何反序列化。您的班级应该知道用于初始化的值是否有效,无论它们来自何处。