杰克逊JSON转JAVA转换问题

时间:2012-07-20 14:55:28

标签: java json jackson

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

感谢您的帮助!

0 个答案:

没有答案