在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → android json请求解析入门示例代码

android json请求解析入门示例代码

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:0.63M
  • 下载次数:26
  • 浏览次数:309
  • 发布时间:2015-12-14
  • 实例类别:Android平台开发
  • 发 布 人:AngusTang
  • 文件格式:.rar
  • 所需积分:1
 相关标签: json js

实例介绍

【实例简介】:用于测试请求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;
   }
}

标签: json js

实例下载地址

android json请求解析入门示例代码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警