所以我使用 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);
和输出:
失败测试1:错误测试2:错误测试3:空
当尝试将 JSON 布尔值转换为字符串时,它是成功的,这对我来说是个问题,因为我当前的方法看起来类似于下面的方法,并且当对象反序列化的类型错误时,它会导致问题出现。
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
}
}
}
感谢您的帮助!