質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

2回答

6367閲覧

楽天APIよりjsonデータを取得し、一覧表示する方法

h-h13

総合スコア17

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

1グッド

1クリップ

投稿2016/01/27 16:19

楽天APIでデータを取得し、一覧表示する方法にどうしてよいかわからず困っております。

lang

1@Override 2 protected String doInBackground(String... url) { 3 try { 4 URL curl = new URL(url[0]); 5 conn = (HttpsURLConnection)curl.openConnection(); 6 conn.setRequestMethod("GET"); 7 conn.setDoOutput(true); 8 conn.setInstanceFollowRedirects(false); 9 conn.connect(); 10 11 BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf8")); 12 13 StringBuilder sb = new StringBuilder(); 14 StringBuilder ReceiveStr = new StringBuilder(); 15 16 String line; 17 18 while ((line = reader.readLine()) != null) { 19 sb.append(line); 20 } 21 22 JSONObject json = new JSONObject(sb.toString()); 23 JSONArray jsonArray = json.getJSONArray("Items"); 24 25 for(int i = 0; i < jsonArray.length(); i++) { 26 JSONObject data = jsonArray.getJSONObject(i); 27 28 ReceiveStr.append(data.getString("title") + BR); 29 ReceiveStr.append(data.getString("author") + BR); 30 ReceiveStr.append(data.getString("publisherName") + BR); 31 ReceiveStr.append(data.getString("isbn") + BR); 32 ReceiveStr.append(data.getString("jan") + BR); 33 ReceiveStr.append(data.getString("itemCaption") + BR); 34 ReceiveStr.append(data.getString("salesDate") + BR); 35 ReceiveStr.append(data.getString("itemPrice") + BR); 36 ReceiveStr.append(data.getString("listPrice") + BR); 37 } 38 39 return ReceiveStr.toString(); 40 } catch (MalformedURLException e) { 41 e.printStackTrace(); 42 } catch (IOException e) { 43 e.printStackTrace(); 44 } catch (JSONException e) { 45 e.printStackTrace(); 46 } 47 48 return ""; 49 } 50 51 52@Override 53 protected void onPostExecute(String result) { 54 ここがわからない・・・ 55 希望は 56 // titleがはいる 57 textView1.setText(result); 58 // itemPriceがはいる 59 textView2.setText(result); 60 などなど分けて表示させたいです。 61 } 62

onPostExecuteにjsonデータを渡したいのですが、どのように実装してよいかわからず困っています。
宜しくお願いします。

参考サイト
http://tiro105.hateblo.jp/entry/2015/04/12/212051

b1ackc0ffee👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

どこまでを非同期で行うかによります。
JSONArrayに変換するまでならAsycTask<String,Void,JSONArray>でいいのですが、 JSONArrayからさらに使いやすい自作クラス(フィールドにtitleやauthorなどを持つ)に変換するのであればAsycTask<String,Void,ArrayList<自作クラスの型>>にするのがいいでしょう。

投稿2016/01/28 01:17

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

h-h13

2016/01/28 13:48

ありがとうございます! eripongさんの記述方法で実装いたしました。
guest

0

ベストアンサー

おそらく、AsyncTask<String, Void, String>としているのかと思いますが、
AsyncTask<String, Void, JSONArray>にして、
protected String doInBackground(String... url) {
protected JSONArray doInBackground(String... url) {にした上で以下の様にJSONArrayを返す様にし、

while ((line = reader.readLine()) != null) { sb.append(line); } JSONObject json = new JSONObject(sb.toString()); JSONArray jsonArray = json.getJSONArray("Items"); return jsonArray;

protected void onPostExecute(String result) {
protected void onPostExecute(JSONArray result) {にすれば後は好きに設定できそうです。

試していないので間違っていたらすみません。

投稿2016/01/28 00:39

eripong

総合スコア1546

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

h-h13

2016/01/28 13:47

ありがとうございます! 上記の内容でできました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問