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();
}
Android開発 虎の巻