我正在尝试将对象序列化为 json 并从其反序列化。我尝试使用静态方法创建一个类,该方法在给定类的一般情况下可以完成此任务。
public static <T> T jsonToObject(String json, Class<T> tClass) {
try {
return mapper.readValue(json, tClass);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
然后在单元测试中:
@Test
public void testUserDataSerialization() {
UserData userData = new UserData
.Builder("david@davidgeorgewilliams.com")
.firstName("david")
.lastName("Williams")
.build();
String userDataJson = JsonUtils.objectToJson(userData);
String userDataJson1 = JsonUtils.objectToJson(userData1);
System.out.println(userDataJson + "\n" + userData1);
}
这会因为这个例外而爆炸
Running com.company.app.UserDataJsonTest
org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type [simple type, class com.company.app.model.UserData]: can not instantiate from JSON object (need to add/enable type information?)
at [Source: java.io.StringReader@76ba6b2; line: 1, column: 2]
at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)
at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObjectUsingNonDefault(BeanDeserializer.java:746)
at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:683)
我在这里做错了什么,我该如何解决?这个想法是我想从 post 请求正文中接受 JSON,并将其转换为相应的对象。