ここでは、JSON形式のテキストをパース(解析)して、キー・バリュー形式の値を取得するサンプルコードを掲載しています。
スポンサーリンク
JSONテキストを解析して値を取得する
次のサンプルコードでは、JSONテキストを解析して値を取得しています。なお、動作確認は、android studio 2.3.3 にて行いました。
try { // JSONテキスト string jsonText = "{\"header\":{\"name\":\"桃\"},\"body\":{\"area\":\"山梨\"}}"; JSONObject json = new JSONObject(jsonText); // ブロック部:getJSONObjectメソッド // キー・バリュー部:getStringメソッド // 配列部分:getJSONArrayメソッド+getJSONObjectメソッドで繰り返し取得 String name = json.getJSONObject("header").getString("name"); String area = json.getJSONObject("body").getString("area"); System.out.println("header.name = " + name); System.out.println("body.area =" + area); } catch (JSONException e) { System.out.println(e.getMessage()); }
JSONテキストを作成する
上記のサンプルスクリプトでは、JSONをべた書きしていますが、JSONObject クラスを使って作成することもできます。上記と同じJSONテキストを作成するサンプルコードは次の通りです。
try { // JSONテキスト全体 JSONObject jsonObj = new JSONObject(); // ヘッダー部 JSONObject header = new JSONObject(); header.put("name", "桃"); // ボディー部 JSONObject body = new JSONObject(); body.put("area", "山梨"); // ヘッダーとボディーを追加 jsonObj.put("header", header); jsonObj.put("body", body); // 出力 System.out.println(jsonObj.toString()); /* * 出力結果 * ----------------------------------------- * {"header":{"name":"桃"},"body":{"area":"山梨"}} */ } catch (JSONException e) { System.out.println(e.getMessage()); }
しかし、腹減ったな。
米がまずそうに見えるのが残念!!実際まずいんだろうけど。