0

Google カスタム検索から取得した json データを解析しようとしています。

json の例を次に示します。

{
 "items": [
  {
   "link": "address1"
  },
  {
   "link": "address2"
  }
 ]
}

そして、これは POJO です。

public class Result 
{
    item[] items;
    class item
    {
        String link;
    }
}

しかし、私はエラーが発生します:

無視できるとマークされていない、認識されないフィールド「アイテム」(クラス結果)

POJO の何が問題になっていますか?

4

2 に答える 2

3

クラス構造を以下のようにします

class item {
    String link;
}
@JsonIgnoreProperties(ignoreUnknown=true)
class Result {
    item[] items;
}

@JsonIgnoreProperties(ignoreUnknown=true) は、JSON 文字列にプロパティがあるが、それがクラスにない場合に完全に役立ちます。パーサーは例外を通過せず、単に無視します。

編集:例を含む完全なコード

class Item {
    String link;

    public String getLink() {
        return link;
    }

    public void setLink(String link) {
        this.link = link;
    }
}

@JsonIgnoreProperties(ignoreUnknown = true)
class Result {
    List<Item> items;

    public List<Item> getItems() {
        return items;
    }

    public void setItems(List<Item> items) {
        this.items = items;
    }

}

public class JsonCommonTest {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        String data = "{\"items\": [{\"link\": \"address1\"},{\"link\": \"address2 \"}]}";
        Result result = mapper.readValue(data, Result.class);
        System.out.println(result.items.size());
    }
}
于 2013-04-11T05:59:45.903 に答える
0

ジャクソンで内部クラスを使用する場合、内部クラスは静的であるか、内部クラスを使用しないでください。

于 2013-04-11T06:14:51.420 に答える