2

私は、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を抽出するにはどうすればよいですか?

4

1 に答える 1