こんにちは私はAndroidでpicasa写真を表示する簡単なアプリケーションを実装しようとしています。
多くの試行を経て、Picasaフィードを取得するためにGoogle Java Apiクライアント(Gdataクライアントではない)を使用しています。
version
私のプログラムでは、フィード(および以下のコード)のJSONの最初のレイヤーフィールドをencoding
正常にマッピングできるため、フィードと接続に問題はありませんが、2番目のレイヤーフィールドをオブジェクトにマッピングできません。
albumFeed = response.parseAs(AlbumFeed.class);
パーサーを呼び出すを使用します。
公式サンプルから私はこのAlbumFeed.javaを持っています
public class AlbumFeed {
// cannot be List
@Key
List<AlbumEntry> feed;
@Key
String version;
@Key
String encoding;
}
と List <AlbumEntry> feed
; このエラーが発生します。これは、リストを開始できないことを示しています
06-16 14:35:10.789: E/AndroidRuntime(1129): Caused by: java.lang.IllegalArgumentException: unable to create new instance of class java.util.List because it is an interface and because it has no accessible default constructor
エラーが表示されないように変更しまし
ArrayList<AlbumEntry> feed
たが、ArrayListは空になります。誰かが私に与えられたJsonObjectParserを使用してJSONをオブジェクトにマップする正しい方法をアドバイスできますか?
誰かが私の質問に答えることができればどうもありがとう
より多くのコード
public class newApiActivity extends Activity {
HttpTransport transport = AndroidHttp.newCompatibleTransport();
static final JsonFactory JSON_FACTORY = new JacksonFactory();
public static HttpRequestFactory createRequestFactory(HttpTransport transport) {
return transport.createRequestFactory(new HttpRequestInitializer() {
public void initialize(HttpRequest request) {
// final JsonCParser jsoncparser = new JsonCParser(JSON_FACTORY);
request.setParser(new JsonObjectParser(GSON_FACTORY));
// request.setParser(jsoncparser);
GoogleHeaders headers = new GoogleHeaders();
headers.setApplicationName("APOD/1.0");
headers.setGDataVersion("2");
request.setHeaders(headers);
}
});
}
public void mainLogic(){
HttpRequest buildGetRequest = reqFactory.buildGetRequest(url);
HttpResponse response = buildGetRequest.execute();
albumFeed = response.parseAs(AlbumFeed.class);
}
}
ここで、AlbumEntry.javaは、動作をテストするためにxmlnsを使用しているようなものになります)
public class AlbumEntry extends Entry {
@Key("xmlns")
public String xmlns;
}
JSONフィード自体は次のようなものです。
{"version":"1.0","encoding":"UTF-8",
"feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$gphoto":"http://schemas.google.com/photos/2007,……}}