1

所以我使用 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
        }
    }
}

感谢您的帮助!

4

0 回答 0