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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Java

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

Android

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

Q&A

2回答

3555閲覧

取得してきたJSONをGSONを用いて扱う

fkd.y

総合スコア11

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Java

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

Android

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

0グッド

0クリップ

投稿2015/07/09 10:58

編集2015/07/10 02:07

スマホ向けニュースアプリ「グ○シー」のようにタイトルや画像、記事ごとのIDをリストで取得して表示し、タップすると内容をみれるようなアプリを作っています。
ダミーのデータとして以下のようなJSONを受信するとしたら、受け取った後はどのように処理すれば良いのでしょうか。
調べてみてもサンプルには1つのデータを直接記述していたため参考になりませんでした。

現状、表示するためのListViewなどはできています。
また、含まれる要素に対するモデルクラスのようなものを作るのはわかりましたので作ってあります。
よろしくお願いします。

lang

1[ 2 { 3 "id": , 4 "title": "ニュースa", 5 "url": "http://news/a", 6 "thumbnailUrl": "http://gazou/a" 7 }, 8 { 9 "id": , 10 "title": "ニュースb", 11 "url": "http://news/b", 12 "thumbnailUrl": "http://gazou/b" 13}, 14 { 15 "id": , 16 "title": "ニュースc", 17 "url": "http://news/c", 18 "thumbnailUrl": "http://gazou/c" 19 } 20]

【追記】
一晩考えてみました。
非同期処理でJsonオブジェクトを取得した後のGsonとしての受け取り方で躓きました。

lang

1public void onEventMainThread(MyEvent event){ 2 //EventBusで処理結果を受け取る 3 String json = String.valueOf(event.message); 4 //Gsonの初期化 5 Gson gson = new Gson (); 6 //上記JSONオブジェクトの内容を扱うNewsクラスに入れる 7 News news = gson.fromJson(json.toString(),News.class); 8 }

ここでのNewsへの入れ方やJSON・GSONの使い方に間違いがありましたらご指摘お願いします。

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

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

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

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

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

guest

回答2

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

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

0

こんにちは。

サーバーと通信するAndroidアプリで、サーバーから送られるJSONの
処理方法として、ネットワーク通信用ライブラリVolleyを使ってみるの
はいかがでしょうか?

Volleyソースコード
https://android.googlesource.com/platform/frameworks/volley/

使い方を説明している、以下の記事
ネットワーク通信用ライブラリVolleyを使いこなす
から、サンプルコードを拝借します。

lang

1private RequestQueue mQueue; 2 3@Override 4protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 8 // 東京都の天気情報 9 String url = 10 "http://weather.livedoor.com/forecast/webservice/json/v1?city=130010"; 11 12 mQueue = Volley.newRequestQueue(this); 13 mQueue.add(new JsonObjectRequest(Method.GET, url, null, 14 new Listener<JSONObject>() { 15 @Override 16 public void onResponse(JSONObject response) { 17 // JSONObjectのパース、List、Viewへの追加等 18 } 19 }, 20 21 new Response.ErrorListener() { 22 @Override public void onErrorResponse(VolleyError error) { 23 // エラー処理 error.networkResponseで確認 24 // エラー表示など 25 } 26 })); 27}

上記のコメントになっている、

// JSONObjectのパース、List、Viewへの追加等

のところで、ListViewなどのUIに表示する値を
設定すればよいと思います。

ちなみに、私事で恐縮ですが、自分も3ヶ月ぐらい前にサーバーと通信する
Androidアプリの開発案件に参加していましたが、そこでも Volley を使って
おり、レスポンスJSONのパースは、Gsonではなく、上のサンプルコードにも
出てくる

org.json.JSONObject

でやっていました。

参考になれば幸いです。

投稿2015/07/09 11:26

編集2015/07/09 12:59
jun68ykt

総合スコア9058

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

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

fkd.y

2015/07/10 01:08

ありがとうございます。 紹介していただいた記事も含めわかりやすくて助かります。 質問に記載していなかったので申し訳ないのですが今回のアプリは「Gsonを使って作る(Gsonを覚える)」という課題ですので、今後の参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問