如何使用Jackson反序列化包含nest类的JavaBean&;列表

如何使用Jackson反序列化包含nest类的JavaBean&;列表,java,json,jackson,Java,Json,Jackson,我有一个JavaBean: public Class Account{ String userName; String id; List<Detail> details; class Detail{ String num; String name; } } 公共类帐户{ 字符串用户名; 字符串id; 列出详情; 课堂细节{ 字符串数; 字符串名; } } 这里有JSON: {“用户名”:“Tony”,“i

我有一个JavaBean:

public Class Account{
    String userName;
    String id;
    List<Detail> details; 

    class Detail{
        String num;
        String name;
    }
}
公共类帐户{
字符串用户名;
字符串id;
列出详情;
课堂细节{
字符串数;
字符串名;
}
}
这里有JSON:
{“用户名”:“Tony”,“id”:“123”,“详细信息”:[{“num”:“1”,“name”:“Tom”},{“num”:“2”,“name”:“Jerry”}]}


如何使用Jackson进行反序列化?谢谢

首先,
用户名
字段名应与json字符串(用户名)中的字段名相同

列表
中的打字错误修正为
列表
,将
详细信息
类名修正为
详细信息

为类字段添加getter和setter

使用以下示例反序列化json:

String jsonStr = "{\"userName\":\"Tony\",\"id\":\"123\",\"details\":[{\"num\":\"1\",\"name\":\"Tom\"},{\"num\":\"2\",\"name\":\"Jerry\"}]}";

ObjectMapper mapper = new ObjectMapper();

try {
    Account account = mapper.readValue(jsonStr, Account.class);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

首先,
userName
字段名应与json字符串(userName)中的字段名相同

列表
中的打字错误修正为
列表
,将
详细信息
类名修正为
详细信息

为类字段添加getter和setter

使用以下示例反序列化json:

String jsonStr = "{\"userName\":\"Tony\",\"id\":\"123\",\"details\":[{\"num\":\"1\",\"name\":\"Tom\"},{\"num\":\"2\",\"name\":\"Jerry\"}]}";

ObjectMapper mapper = new ObjectMapper();

try {
    Account account = mapper.readValue(jsonStr, Account.class);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

我在bean中没有看到映射。我在bean.com.fasterxml.jackson.databind.JsonMappingException中没有看到映射:找不到类型[simple type,class com.Account$Detail]的合适构造函数:无法从[Source:java.io]的JSON对象实例化(需要添加/启用类型信息吗?)。StringReader@6e2c9341;行:1,列:43](通过com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)com.fasterxml.jackson.databind.JsonMappingException上的引用链:com.Account[“details”]:找不到类型[简单类型,类com.Account$Detail]的合适构造函数:无法从JSON对象实例化(需要添加/启用类型信息?)在[来源:java.io。StringReader@6e2c9341;行:1,列:43](通过com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)上的引用链:com.Account[“details”])