JSON 使用 Jackson API 反序列化



pojo class

class Authentication {
 private static final long serialVersionUID = 3808270497038004505L;
    public Authentication(){
}
private String userName;
private String passWord;
public String getuserName() {
    return userName;
}
public void setuserName(String userName) {
    userName = userName;
}
public String getpassWord() {
    return passWord;
}
public void setpassWord(String passWord) {
    passWord = passWord;
}
}

控制器

Authentication authentication= (Authentication) new JSONDeserializer<T>().deserialize(data,Authentication.class);
 return new ModelAndView().addObject(authentication);

传递数据

  {"userName":"kadires","passWord":"ramgopal"}

结果

System.out.println(authentication.getpassWord()+authentication.getuserName());
{"authentication":{"userName":null,"passWord":null}}

请帮助我

检查你的二传手是否正确编写。get 后的第一个字母必须大写。

你也可以创建你的NullSerializer的实现。例如:

public class NullSerializer extends JsonSerializer<Object> {
    @Override
    public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
        jgen.writeString("");
    }
}

然后只需将 NullSerializer 设置为 ObjectMapper:

ObjectMapper objMapper = new ObjectMapper();
StdSerializerProvider sp = new StdSerializerProvider();
sp.setNullValueSerializer(new NullSerializer());
objMapper.setSerializerProvider(sp);

问题可能出在二传手上,它们从小写的setuser开始...设置密码,首字母使用大写,这是惯例。

最新更新