私は、fasterxml/jackson を使用して、json 構造を pojo にマップしようとしています。
私のjsonはファイルから取得され、次のようになります。
{
"groups": [
{
"name": "Group1",
"icon": "group1.png",
"banner": "banner.png"
},
{
"name": "Group2",
"icon": "group2.png",
"banner": "banner.png"
}
],
"ticker": [
{
"title": "ticker1",
"description": "description",
"url": "bla",
"icon": "icon.png",
"banner": "banner.png",
"group": "Group1",
"enabled": "true",
"startTime": "00:00",
"startDate": "15.10.2013"
}
]
}
グループに興味があります。したがって、クラス Groups を作成しました。
public class Groups implements Serializable {
private final static long serialVersionUID = 42L;
private List<Group> groups;
public Groups() {}
public Groups ( List<Group> groups ) {
this.groups = groups;
}
public List<Group> getGroups() {
if (groups == null) {
groups = new ArrayList<Group>();
}
return groups;
}
public void add(Group group) {
getGroups().add(group);
}
}
通常、私はこのコードを使用してjsonをpojoにマップしています:
public static <T> T readJsonFile(File file, Class<T> valueType) throws IOException {
String json = readJsonFile(file.getAbsolutePath());
if( StringUtils.isEmpty(json) ) {
return null;
}
return createObjectMapper().readValue(json, valueType);
}
pojo が外側の json オブジェクトである場合、これは正常に機能します。しかし、グループを抽出しようとすると、次のエラーで失敗します
"no suitable constructor"
。
JSON構造にネストされたpojoを抽出するにはどうすればよいですか?