实例介绍
【实例简介】:用于测试请求json数据
【实例截图】
【实例截图】
【核心代码】
package com.android.jsontest; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private Button btn2,btn3,btn4,btn5,btn6,btn7; private TextView txt1; private String baseUrl = "http://192.168.88.181:8080/ship/servlet/getposinfo"; private String str = ""; private Handler handler = new Handler(){ public void handlerMessage(Message msg){ //返回的字符串 ,直接是一个数组 // [{"devid":"1234567800","latitude":"29.4963","longitude":"116.189","postime":"2014-06-10 12:13:00"}, // {"devid":"1234567832","latitude":"29.4943","longitude":"1161.129","postime":"2014-06-11 12:13:00"}] if(msg.what == 1){ Log.v("ZMS", "使用httpclient,返回的json"); try{ JSONArray jsonArray = new JSONArray(String.valueOf(msg.obj)); txt1.setText(" "); str = "httpclient:"; for(int i = 0;i<jsonArray.length();i ){ JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i); str = str "第" i "个,devid:" jsonObject2.getString("devid") "维度:" jsonObject2.getString("latitude") "\n"; txt1.setText(str); Log.v("ZMS", str); } }catch(JSONException e){ e.printStackTrace(); } } else if(msg.what == 2){ Log.v("ZMS","使用httpurlconnection返回的json"); try{ JSONArray jsonArray = new JSONArray(String.valueOf(msg.obj)); txt1.setText(" "); str = "urlconnect"; for(int i=0;i<jsonArray.length();i ){ JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i); str = str "第" i "个,devid:" jsonObject2.getString("devid") "维度:" jsonObject2.getString("latitude") "\n"; txt1.setText(str); Log.v("ZMS", str); } }catch(JSONException e){ e.printStackTrace(); } } super.handleMessage(msg); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); txt1 = (TextView)findViewById(R.id.textView1); //最简单的直接一个对象 btn2 = (Button)findViewById(R.id.button2); btn2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { txt1.setText(""); str=""; try{ //{"username":"ZMS","age":"23","addr","from china"}; String json = "{\"username\":\"zms\",\"age\":43,\"addr\":\"武汉\"}"; JSONObject jsonObject2 = new JSONObject(json); str = "名字:" jsonObject2.getString("username") "年薪:" jsonObject2.getString("age") jsonObject2.getString("addr") "\n"; txt1.setText(str); Log.v("ZMS", str); }catch(JSONException e){ e.printStackTrace(); } } }); //对象里面有数租 btn3 = (Button)findViewById(R.id.button3); btn3.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { txt1.setText(""); str=""; try{ //{"username":"zms",age:11,"jicheng":[{"zhengshu":"PMP","date":"2011年"},{"zhengshu":"信息系统项目管理 //师","date","2012年"}],"addr":"江西"} // 这种也属于 对象里有数组 {"json":[{"username":"zms","date":"2011年"},{"username":"ivy","date","2012年"}]} String json= "{\"username\":\"张木生\",age:11,\"jicheng\":[{\"zhengshu\":\"PMP\",\"date\":\"2011年\"},{\"zhengshu\":\"信息系统项目管理师\",\"date\":\"2012年\"}],\"addr\":\"江西\"}"; JSONObject jsonObject2 = new JSONObject(json); str = "名字:" jsonObject2.getString("username"); str = str "工龄:" jsonObject2.getString("age") "证书:"; JSONArray jsonArray = jsonObject2.getJSONArray("jicheng"); for(int i=0;i<jsonArray.length();i ){ JSONObject jsonObjectSon = (JSONObject)jsonArray.opt(i); str = str jsonObjectSon.getString("zhengshu") "年份:" jsonObjectSon.getString("date"); } str =str "籍贯" jsonObject2.getString("addr"); txt1.setText(str); Log.v("ZMS", str); }catch(JSONException e){ e.printStackTrace(); } } }); //直接一个数组 btn4 = (Button)findViewById(R.id.button4); btn4.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Log.v("ZMS", "响应4"); txt1.setText(""); str=""; //返回的字符串直接是个数组 // [{"devid":"1234567800","latitude":"29.4963","longitude":"116.189"},{"devid":"1234567832","latitude":"29.4943","longitude":"1161.129"}] String json = "[{\"devid\":\"1234567800\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"devid\":\"1234567832\",\"latitude\":\"29.4943\",\"longitude\":\"1161.129\"}]"; try{ JSONArray jsonArray = new JSONArray(json); for(int i=0;i<jsonArray.length();i ){ JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i); str=str "第" i "个,devid" jsonObject2.getString("devid") "维度:" jsonObject2.getString("latitude") "经度:" jsonObject2.getString("longitude") "\n"; } txt1.setText(str); Log.v("ZMS", str); }catch(JSONException e){ e.printStackTrace(); } } }); //数组里有数组 btn5 = (Button)findViewById(R.id.button5); btn5.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { txt1.setText(""); str=""; //返回的字符串直接是个数组 /*[{"devid":"1234567800","gps":[{"time":"2014-11-12","latitude":"29.4963","longitude":"116.189"},{"time":"2014-11-12","latitude":"29.4963","longitude":"116.189" }],"devname":"赣01"}, {"devid":"1234567800","gps":[{"time":"2014-11-12","latitude":"29.4963","longitude":"116.189"},{"time":"2014-11-12","latitude":"29.4963","longitude":"116.189" }],"devname":"赣92"}, {"devid":"1234567800","gps":[{"time":"2014-11-12","latitude":"29.4963","longitude":"116.189"},{"time":"2014-11-12","latitude":"29.4963","longitude":"116.189" }],"devname":"赣43"}, ], */ String json="[" " {\"devid\":\"1234567800\",\"gps\":[{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\" }],\"devname\":\"赣01\"}," " {\"devid\":\"1234567800\",\"gps\":[{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\" }],\"devname\":\"赣92\"}," " {\"devid\":\"1234567800\",\"gps\":[{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\"},{\"time\":\"2014-11-12\",\"latitude\":\"29.4963\",\"longitude\":\"116.189\" }],\"devname\":\"赣43\"}" "]"; try { JSONArray jsonArray = new JSONArray(json); for (int i=0;i<jsonArray.length();i ) {String tpstr="";JSONObject jsonObject5 = (JSONObject)jsonArray.opt(i); str=str "第" i "条船,设备号devid:" jsonObject5.getString("devid"); JSONArray jsonArray5 = jsonObject5.getJSONArray("gps"); for (int j=0;j<jsonArray5.length();j ) {JSONObject jsonOb5Son=(JSONObject)jsonArray5.opt(j); tpstr="采集时间:" jsonOb5Son.getString("time") "维度" jsonOb5Son.getString("latitude") "经度:" jsonOb5Son.getString("longitude"); }str=str tpstr;} txt1.setText(str); Log.v("zms", str);} catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); }}}); //httpclient访问网络返回json btn6=(Button)findViewById(R.id.button6); btn6.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { txt1.setText(""); /*从安卓3.0以后,就不允许在主线程中直接访问网络,必须在子线程中访问 * 访问后要修改主线程的UI,需要使用handler通信 */ accessThread1 mythread1=new accessThread1(); mythread1.start();}}); //httpurlconnection访问网络返回json btn7=(Button)findViewById(R.id.button7); btn7.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { txt1.setText(""); /*从安卓3.0以后,就不允许在主线程中直接访问网络,必须在子线程中访问 *访问后要修改主线程的UI,需要使用handler通信 */ accessThread2 mythread2=new accessThread2(); mythread2.start(); } }); } class accessThread1 extends Thread{ @Override public void run() { Log.v("zms","线程accessThread开始"); Message msg1=handler.obtainMessage(); msg1.what=1; msg1.obj=util.getHttpJsonByhttpclient(baseUrl); handler.sendMessage(msg1); super.run(); } } class accessThread2 extends Thread{ @Override public void run() { Log.v("zms","线程accessThread2开始"); Message msg2=handler.obtainMessage(); msg2.what=2; msg2.obj=util.getHttpJsonByurlconnection(baseUrl); handler.sendMessage(msg2); super.run(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论