これは初心者質問かもしれませんが、解決策が見つかりませんでした。 JSONObject.getにString変数の値を使用しようとしています。 Googleブックスへのリクエストにこれを使用する必要があります。値はOKですが、.get()内の呼び出しでは受け付けられません。 NullPointerExceptionが発生します。事前にString thumbnail = imageLinks.get (nail).toString();
Android /(シンプル)JSON:JSONObject.get()の文字列値の使い方
ありがとう:エラーがここにあるように思わ
public static String getImageLink(JSONObject book)
{
JSONObject volumeInfo = (JSONObject)book.get("volumeInfo");
JSONObject imageLinks = (JSONObject) volumeInfo.get("imageLinks");
if (imageLinks.get("thumbnail")!=null)
{
String thumbnail = imageLinks.get("thumbnail").toString();
Log.i(TAG,"LINK1:" + thumbnail);
return thumbnail;
}else{
Set<String> keys = imageLinks.keySet();
String[] nails = keys.toArray(new String[keys.size()]);
String nail = ('"'+ nails[0]+'"');
String thumbnail = imageLinks.get (nail).toString();
Log.i(TAG,"LINK2:" + nails[0].toString());
return thumbnail;
}
}
:
は、ここでは、コードスニペットです!
編集:
FATAL EXCEPTION: main
Process: com.example.googlebooks, PID: 32387
java.lang.NullPointerException
at com.example.googlebooks.GoogleBooksHelper.getImageLink(GoogleBooksHelper.java:106)
at com.example.googlebooks.TableActivity$BookListDownloadTask.onPostExecute(TableActivity.java:108)
at com.example.googlebooks.TableActivity$BookListDownloadTask.onPostExecute(TableActivity.java:1)
at android.os.AsyncTask.finish(AsyncTask.java:632)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5476)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
私が直接呼び出しのためのJSONレスポンスを使用している場合は、すべての作品: そしてここでは、エラーログです。 私は、リンクを呼び出すための正しいObjects/Strings(thumbnail、smallThumbnail、..)を取得します。 .get-call内の文字列変数は受け入れられません。
投稿するjson rssponse –
クラッシュlogcat出力をポストする。 –
ログとJSON.responseが追加されました。 – Will