WEBAPIでよく使われる返し値はたいていJSON型なので、
JSONをパースしてみようと思います。
◆JSONオブジェクトの生成
JSONObject 変数名 = new JSONObject(文字列);
このように渡せば文字列がJSON型で返されます。
{"result":"true","item_list":{"item_1":"apple","item_2":"banana","item_3":"melon"}}
こんなJSONがWEBAPIで返ってくるというていでお願いいたします。
package com.page.sss; import org.json.JSONException; import org.json.JSONObject; import android.os.Bundle; import android.widget.LinearLayout; import android.widget.TextView; import android.app.Activity; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //基礎画面の作成 LinearLayout oLayout = new LinearLayout(getApplicationContext()); oLayout.setOrientation(LinearLayout.VERTICAL); setContentView(oLayout); //postデータを作成 ~~~~~~ ~~~~~~ //WEBAPIにPOST時の返し値を取得 String sRet = post(sUrl); //テキストビューに出力 oLayout.addView(Make_TextView("返し値:" + sRet)); try { //文字列をJSONオブジェクトに変換 JSONObject rootObject = new JSONObject(sRet); //キーから、アイテムを取得する JSONObject itemobject = (JSONObject)rootObject.get("item_list"); //JSONオブジェクト型から、文字列に変換 String sKekka = itemobject.toString(); //テキストビューに出力 oLayout.addView(Make_TextView("1階層掘り下げ:" + sKekka) ); //テキストビューに出力 oLayout.addView(Make_TextView("一番奥の情報:" + itemobject.get("item_2").toString()) ); } catch (JSONException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } private TextView Make_TextView(String sText){ TextView oTv = new TextView(getApplicationContext()); oTv.setText(sText); return oTv; } }◆実行結果
こんな、感じで無事に文字列を取得できました!! JSONObject itemobject = (JSONObject)rootObject.get("item_list"); この部分はもっと上手く作る方法もあるかと思うんですが、どうなんだろう。。。。 個人的にはPHPのように簡単に連想配列にできるわけでもなく、JSONって結構面倒 とか思っているのですが、とりあえずできてよかったです。
0 件のコメント:
コメントを投稿