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

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

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

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

Android

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

Q&A

解決済

1回答

2364閲覧

GSONでmodelに値を入れるときのエラー

TakaakiMiyosi

総合スコア14

JSON

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

Android

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

0グッド

0クリップ

投稿2015/06/04 05:04

編集2015/06/04 05:30

GsonでOkhttpのレスポンスをmodelに変換しようとしているのですが、

public void getAtndEventApiRequest(){ String atndEventsUrl = "https://api.atnd.org/events/?keyword_or=google,cloud&format=json"; OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(atndEventsUrl).build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { e.printStackTrace(); } @Override public void onResponse(Response response) throws IOException { Gson gson = new Gson(); AtndEventModel eventsModel = gson.fromJson(response.body().string(), AtndEventModel.class); List<AtndEventEntity> events = eventsModel.events; setEvents(events); } }); }

AtndEventModel eventsModel にうまく入ってくれません。

public class AtndEventModel { private Integer resultsReturned; private Integer resultsStart; private List<AtndEventEntity> events; }
public class AtndEventEntity { private Integer accepted; private String address; private String _catch; private String description; private Object endedAt; private Integer eventId; private String eventUrl; private String lat; private Integer limit; private String lon; private Integer ownerId; private String ownerNickname; private String ownerTwitterId; private String place; private String startedAt; private String title; private String updatedAt; private Object url; private Integer waiting; // setter, getterは省略 }

簡略化したJSONデータは以下です。

{ "events": [ { "event": { "accepted": 6, "address": "大阪府大阪市北区小松原町5-8 トリオビル4F、5F", "catch": "梅田1/25(日)", "description": "<p>はじめに<br /><p>それでは当日楽しみましょう!</p>", "ended_at": null, "event_id": 60918, "event_url": "http://atnd.org/events/60918", "lat": "34.7033395", "limit": 20, "lon": "135.5014871", "owner_id": 193806, "owner_nickname": "たこにゃん", "owner_twitter_id": "taconyan39", "place": "梅田個室空間 楽宴の贈りもの 梅田店", "started_at": "2020-01-25T19:00:00.000+09:00", "title": "アニメ語りたいin梅田 1/25(日)", "updated_at": "2015-03-12T12:27:46.000+09:00", "url": null, "waiting": 0 } }, { "event": { "accepted": 18, "address": "みなしごらんど", "catch": "アルゴリズムイントロダクションを読む予定", "description": "<h1>あるごりずむ が にがてな ぼくたち の ための べんきょうかい です</h1><h3><a href="http://groups.google.co.jp/group/itroductiontoalgorithm">登録お願いします</a></h3>", "ended_at": null, "event_id": 7828, "event_url": "http://atnd.org/events/7828", "lat": "0.0", "limit": 2147483647, "lon": "0.0", "owner_id": 4443, "owner_nickname": "oskimura", "owner_twitter_id": "oskimura", "place": "い し の な か に い る", "started_at": "2015-12-31T23:50:00.000+09:00", "title": "【初心者向け】あるごりずむ勉強会", "updated_at": "2010-09-24T13:51:01.000+09:00", "url": "http://groups.google.co.jp/group/itroductiontoalgorithm", "waiting": 0 } } ], "results_returned": 10, "results_start": 1 }

ライブラリのバージョンは

compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.squareup.okio:okio:1.4.0' compile 'com.google.code.gson:gson:2.3'

です。

もし原因がお分かりの方がいらしたら、教えていただきたいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

クラスのフィールド名とjsonのキー値が異なる場合は@SerializedName("json_key_name")を付けます

lang

1public class AtndEventModel { 2 3 @SerializedName("results_returned") private Integer resultsReturned; 4 @SerializedName("results_start") private Integer resultsStart; 5 private List<AtndEventEntity> events; 6} 7 8// AtndEventEntityも同様

投稿2015/06/09 04:22

YukiYoshida

総合スコア93

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問