所以我使用Jackson将对象转换为JSON,然后通过连接发送它们并将它们转换回连接另一端的对象。我在阅读JSON并尝试将其转换为JAVA对象时遇到了问题,它成功地将JSON更改为多个对象。在一个例子中更容易看到:
ObjectMapper map = new ObjectMapper();
Boolean test1 = null;
String test2 = null;
Integer test3 = null;
Boolean obj = false;
byte[] bytes = null;
try {
bytes = map.writeValueAsBytes(obj);
} catch (Exception e) {
e.printStackTrace();
}
try {
test1 = map.readValue(bytes, Boolean.class);
test2 = map.readValue(bytes, String.class);
test3 = map.readValue(bytes, Integer.class);
} catch (Exception e)
{
System.out.println("FAILED");
}
System.out.println("test1: " + test1 + "\ntest2: " + test2 + "\ntest3: " + test3);
输出:
FAILED test1:false test2:false test3:null
当尝试将JSON布尔值转换为String时,它是成功的,这对我来说是有问题的,因为我当前的方法看起来类似于下面的内容,当对象反序列化的类型错误时,它会导致问题。
public void JSONtoJAVA(Class<?> clazz)
{
for(Event event : Events)
{
try
{
Object deserialized = map.readValue(bytes, event.getC());
Event.getMethod().invoke(deserialized);
}
catch(Exception e)
{
//Failed ignore
}
}
}
感谢您的帮助!