简体   繁体   English

json使用jackson api反序列化

[英]json deserialize using jackson api

pojo class pojo课

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;
}
}

controller 控制者

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

passing data 传递数据

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

result 结果

System.out.println(authentication.getpassWord()+authentication.getuserName());

{"authentication":{"userName":null,"passWord":null}}

please help me 请帮我

Check if your setters are correctly written. 检查安装员的书写是否正确。 First letter after get must be uppercase. get之后的首字母必须为大写。

Also you could create your implementation of NullSerializer. 您也可以创建NullSerializer的实现。 For example: 例如:

public class NullSerializer extends JsonSerializer<Object> {

    @Override
    public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
        jgen.writeString("");
    }
}

Then just set your NullSerializer to the ObjectMapper: 然后只需将NullSerializer设置为ObjectMapper:

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

问题可能是setter,它们以小写字母setuser ... setpassword开头,首字母大写,这是惯例。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM