JSON
■JSONとは?
JavaScript Object Notation。JavaScriptの表記を元にしたオブジェクト表記法。
■書き方
オブジェクトの例
{name:"田中",age:30}
配列の例
[10,20,30]
オブジェクト配列の例
[ {name:"田中",age:30}, {name:"鈴木",age:30}, {name:"山本",age:30} ]
- オブジェクトは{}で囲む。{属性名:値}で記述
- 配列は[]で囲む。[値,値,値]と記述
- 値は文字列の時は""で囲む
- 値はオブジェクトや配列でも良い
- 正式にはJSONの場合、属性名も""で囲む
■JavaでのJSONの操作
- オブジェクトはJSONObjectクラスを使用
- 配列はJSONArrayクラスを使用
- getStringメソッドで値が取れる。引数は属性名かインデックス
- getJSONObjectメソッドでオブジェクトが取れる。引数は属性名かインデックス
- getJSONArrayメソッドでオブジェクトが取れる。引数は属性名かインデックス
■オブジェクトの表示例
String json = "{name:\"田中\",age:30}"; try{ JSONObject obj = new JSONObject(json); String str = obj.getString("name"); TextView tv = (TextView)findViewById(R.id.textView1); tv.setText(str); } catch (JSONException e) { Toast.makeText(this, "JSON エラー", Toast.LENGTH_LONG).show(); }
■配列の表示例
String json = "[10,20,30]"; try{ JSONArray array = new JSONArray(json); int count = array.length(); String str = ""; for (int i=0; i<count; i++){ str += array.getString(i); str += ","; } TextView tv = (TextView)findViewById(R.id.textView1); tv.setText(str); } catch (JSONException e) { Toast.makeText(this, "JSON エラー", Toast.LENGTH_LONG).show(); }
■オブジェクト配列の表示例
String json = "[{name:\"田中\",age:30},{name:\"鈴木\",age:30},{name:\"山本\",age:30}]"; try{ JSONArray array = new JSONArray(json); int count = array.length(); String str = ""; for (int i=0; i<count; i++){ JSONObject obj = array.getJSONObject(i); str += obj.getString("name"); str += ","; } TextView tv = (TextView)findViewById(R.id.textView1); tv.setText(str); } catch (JSONException e) { Toast.makeText(this, "JSON エラー", Toast.LENGTH_LONG).show(); }