###実現したいことと問題
ASP.net WebAPIから送り出したJSONデータを、Androidで取得し、そのデータをパースして画面に出力するコードを書いているのですが、Android側でのJSONパースの段階でどうしても解決できない問題があります。
###ソース
- 取得データ(JSON)
json
1{"Message":"じっけん!"}
- MainActivity.java(一部省略)
java
1 mQueue = Volley.newRequestQueue(this); 2 3 //接続処理(リクエストの追加) 4 mQueue.add(new JsonObjectRequest(Request.Method.GET, connectionUrl 5 , null 6 , new Response.Listener<JSONObject>() { 7 //返却 8 @Override 9 public void onResponse(JSONObject response) { 10 Log.d("Response Sucsess",response.toString()); 11 parseJsonObject(response); 12 } 13 } //Listener 14 ,new Response.ErrorListener() { 15 //エラー時 16 @Override 17 public void onErrorResponse(VolleyError error) { 18 Log.d("Response Failed",error.toString()); 19 } 20 })); 21 22 //Jsonオブジェクトをパースする 23 private void parseJsonObject(JSONObject response) { 24 try { 25 JSONObject jsData = new JSONObject(response.toString()); 26 //ここでmessageに"じっけん!"が入らず、nullとなる 27 String Message = jsData.getString("Message"); 28 } catch (JSONException e) { 29 Log.d("exception",e.toString()); 30 } 31 }
parseJsonObjectにJSONデータを渡し、JSONObjectのインスタンスを生成する段階でStringにして渡しています。
しかし、getStringを行う際にそれが行われず、String Messageにはnullが格納されてしまいます。
###GSONでのアプローチも試みています
GSON ライブラリが使えるとの情報を取得し、
Java
1parseJsonObject(response);
の点を
Java
1String Message = gson.fromJson(response.toString(),String.class);
とし、実行しておりますが、下記の例外を吐いて終了します。
com.google.gson.JsonSyntaxException:
1java.lang.IllegalStateException:Expected a string but was BEGIN_OBJECT at line 1 column 2 path $
未熟故に対処法も思いつかず、同しようもない状況となっております。
何卒ご回答をお願い致します。
###補足情報(言語/FW/ツール等のバージョンなど)
IDE:Android Studio 2.3.2
Android OS:7.1.1(Nexus 9)
開発PC OS:Windows 10

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/07/20 02:50