phpAndroid開発 虎の巻

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();
	}

カテゴリ:通信の記事