国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android網(wǎng)絡編程之獲取網(wǎng)絡上的Json數(shù)據(jù)實例

Android網(wǎng)絡編程之獲取網(wǎng)絡上的Json數(shù)據(jù)實例

2021-03-09 15:16Android開發(fā)網(wǎng) Android

這篇文章主要介紹了Android網(wǎng)絡編程之獲取網(wǎng)絡上的Json數(shù)據(jù)實例,本文用完整的代碼實例講解了在Android中讀取網(wǎng)絡中Json數(shù)據(jù)的方法,需要的朋友可以參考下

為要獲取網(wǎng)絡上的json所以需要服務器端提供的支持。

一、創(chuàng)建服務器端:

服務器端項目結構:

Android網(wǎng)絡編程之獲取網(wǎng)絡上的Json數(shù)據(jù)實例

服務器端運行效果圖:

Android網(wǎng)絡編程之獲取網(wǎng)絡上的Json數(shù)據(jù)實例

第一步:創(chuàng)建業(yè)務所需的javabean

 

復制代碼 代碼如下:

 package com.jph.sj.model;
 
import java.util.date;
 
/**
 * 新聞實體類
 * @author jph
 * date:2014.09.26
 */
public class news {
    private integer id;
    private string title;
    private date publishdate;
    
    public news(integer id, string title, date publishdate) {
        this.id = id;
        this.title = title;
        this.publishdate = publishdate;
    }
    public integer getid() {
        return id;
    }
    public void setid(integer id) {
        this.id = id;
    }
    public string gettitle() {
        return title;
    }
    public void settitle(string title) {
        this.title = title;
    }
    public date getpublishdate() {
        return publishdate;
    }
    public void setpublishdate(date publishdate) {
        this.publishdate = publishdate;
    }
}

 

第二步:創(chuàng)建業(yè)務邏輯接口和具體實現(xiàn)類

業(yè)務接口:

 

復制代碼 代碼如下:

package com.jph.sj.service;
 
import java.util.list;
 
import com.jph.sj.model.news;
 
 
public interface newsservice {
 
    /**
     * 獲取最新的資訊
     * @return
     */
    public list<news> getlastnews();
 
}

 

業(yè)務接口的實現(xiàn)類:

 

復制代碼 代碼如下:

  package com.jph.sj.service.impl;
 
import java.util.arraylist;
import java.util.date;
import java.util.list;
 
import com.jph.sj.model.news;
import com.jph.sj.service.newsservice;
 
public class newsservicebean implements newsservice {
    /**
     * 獲取最新的視頻資訊
     * @return
     */
    public list<news> getlastnews(){      
        list<news> newes = new arraylist<news>();
        newes.add(new news(1, "李白", new date(system.currenttimemillis())));
        newes.add(new news(2, "杜甫", new date(system.currenttimemillis()+8200)));
        newes.add(new news(3, "賈寶玉",new date(system.currenttimemillis()-6000)));
        return newes;
    }
}

 

第三步:創(chuàng)建控制器servlet

 

復制代碼 代碼如下:

 package com.jph.sj.servlet;
 
import java.io.ioexception;
import java.util.list;
 
import javax.servlet.servletexception;
import javax.servlet.http.httpservlet;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
 
import com.jph.sj.model.news;
import com.jph.sj.service.newsservice;
import com.jph.sj.service.impl.newsservicebean;
 
 
/**
 * 負責響應客戶端的請求:http://xxx/newslistservlet/newslistservlet
 */
public class newslistservlet extends httpservlet {
    private static final long serialversionuid = 1l;
    private newsservice newsservice = new newsservicebean();
 
    protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
        dopost(request, response);
    }
    protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
        list<news> newes = newsservice.getlastnews();//獲取最新的視頻資訊
            //[{id:20,title:"xxx",timelength:90},{id:10,title:"xbx",timelength:20}]
            stringbuilder sbjson = new stringbuilder();
            //將list集合封裝成json格式的字符串
            sbjson.append('[');
            for(news news : newes){
                sbjson.append('{');
                sbjson.append("id:").append(news.getid()).append(",");
                sbjson.append("title:\"").append(news.gettitle()).append("\",");
                sbjson.append("publishdate:").append(news.getpublishdate().gettime());
                sbjson.append("},");
            }
            sbjson.deletecharat(sbjson.length() - 1);//刪除字符串末尾的逗號
            sbjson.append(']');
            request.setattribute("json", sbjson.tostring());
            request.getrequestdispatcher("/web-inf/page/jsonnewslist.jsp").forward(request, response);
    }
}

 

第四步:創(chuàng)建jsonnewslist.jsp頁面

 

復制代碼 代碼如下:

<%@ page language="java" contenttype="text/plain; charset=utf-8" pageencoding="utf-8"%>
${json}

 

至此服務器端項目已經(jīng)完成。下面開始創(chuàng)建android端項目。

二、創(chuàng)建android端:

android端項目結構:

Android網(wǎng)絡編程之獲取網(wǎng)絡上的Json數(shù)據(jù)實例

第一步:創(chuàng)建業(yè)務所需的javabean

提示:因為服務器端和android端項目都是用java語言實現(xiàn)的,所以一些組件可以共用,javabean便是其中之一。此時我們在搭建android端項目的時候,完全可以將服務器端項目中javabean拿來用。

第二步:創(chuàng)建android端項目的業(yè)務邏輯層

核心代碼:getandparsejson:

復制代碼 代碼如下:

  package com.jph.gj.service;
 
import java.io.bytearrayoutputstream;
import java.io.ioexception;
import java.io.inputstream;
import java.net.httpurlconnection;
import java.net.url;
import java.util.arraylist;
import java.util.date;
import java.util.list;
import org.json.jsonarray;
import org.json.jsonexception;
import org.json.jsonobject;
import com.jph.model.news;
import android.os.handler;
import android.os.message;
 
/**
 * 獲取并解析網(wǎng)絡上的json
 * @author jph
 * date:2014.09.26
 */
public class getandparsejson {
    private string url="http://10.219.61.117:8080/serverforjson/newslistservlet"; 
    public static final int parsesuccwss=0x2001;
    private handler handler;
    public getandparsejson(handler handler) {
        // todo auto-generated constructor stub
        this.handler=handler;
    }
    /**
     * 獲取網(wǎng)絡上的xml
     */
    public void getjsonfrominternet () {
        new thread(new runnable() {       
            @override
            public void run() {
                // todo auto-generated method stub
                try {
                    httpurlconnection conn=(httpurlconnection) new url(url).openconnection();
                    conn.setconnecttimeout(5000);
                    conn.setrequestmethod("get");
                    if (conn.getresponsecode()==200) {
                        inputstream inputstream=conn.getinputstream();                    
                        list<news>listnews=parsejson(inputstream);
                        if (listnews.size()>0) {
                            message msg=new message();
                            msg.what=parsesuccwss;//通知ui線程json解析完成
                            msg.obj=listnews;//將解析出的數(shù)據(jù)傳遞給ui線程
                            handler.sendmessage(msg);
                        }
                    }
                } catch (exception e) {
                    // todo auto-generated catch block
                    e.printstacktrace();
                }             
            }
        }).start();
        
    }
    /**
     * 解析json格式的輸入流轉換成list
     * @param inputstream
     * @return list
     */
    protected list<news> parsejson(inputstream inputstream) {
        // todo auto-generated method stub
        list<news>listnews=new arraylist<news>();
        byte[]jsonbytes=convertistobytearray(inputstream);
        string json=new string(jsonbytes);
        try {
            jsonarray jsonarray=new jsonarray(json);
            for (int i = 0; i < jsonarray.length(); i++) {
                jsonobject jobject=jsonarray.getjsonobject(i);
                int id=jobject.getint("id");
                string id="code43380">
package com.jph.gj.activity;
 
import java.text.simpledateformat;
import java.util.arraylist;
import java.util.date;
import java.util.hashmap;
import java.util.list;
import java.util.map;
import com.jph.gj.r;
import com.jph.gj.service.getandparsejson;
import com.jph.model.news;
import android.os.bundle;
import android.os.handler;
import android.os.message;
import android.app.activity;
import android.widget.listview;
import android.widget.simpleadapter;
 
/**
 * 獲取網(wǎng)絡上的json
 * @author jph
 * date:2014.09.26
 */
public class mainactivity extends activity {
    private list<news>listnews;
    private listview list;
    handler mhandler=new handler(){
        @override
        public void handlemessage(message msg) {
            // todo auto-generated method stub
            switch (msg.what) {
            case getandparsejson.parsesuccwss:
                listnews=(list<news>) msg.obj;
                initdata();
                break;        
            }
            super.handlemessage(msg);
        }     
    };
    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_main);
        list=(listview)findviewbyid(r.id.list);
        getandparsejson getandparsejson=new getandparsejson(mhandler);
        getandparsejson.getjsonfrominternet();
    }
    /**
     * 將解析后的xml填充到listview
     */
    protected void initdata() {
        // todo auto-generated method stub
        list<map<string, object>>items=new arraylist<map<string,object>>();
        for (news news:listnews) {
            map<string, object>item=new hashmap<string, object>();
            item.put("id", news.getid());
            item.put("title", news.gettitle());
            item.put("time", convertdate(news.getpublishdate()));
            items.add(item);
        }
        simpleadapter adapter=new simpleadapter(this, items, r.layout.line, new string[]
                {"id","title","time"}, new int[]{r.id.tvid,r.id.tvtitle,r.id.tvtime});
        list.setadapter(adapter);
    }
    private string convertdate(date publishdate) {
        // todo auto-generated method stub
        simpledateformat sdf=new simpledateformat("yyyy-mm-dd hh-mm-ss");     
        return sdf.format(publishdate);
    }
}

 

至此android端項目已經(jīng)完成了。下面就讓我們看一下app運行效果吧:
android運行效果圖:

Android網(wǎng)絡編程之獲取網(wǎng)絡上的Json數(shù)據(jù)實例

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 中文字幕91视频 | 久久国产精品二区 | 精品久久久久久亚洲综合网 | 国产亚洲精品久久久久动 | 黄视频入口| 亚洲一区二区国产 | 一区二区三区在线观看国产 | 黄色片网站在线免费观看 | 99精品视频免费观看 | 婷婷91 | 欧美精品在线观看 | 日韩欧美一区二区精品 | 欧美日韩国产影院 | 欧美高清视频在线观看 | 午夜激情视频在线观看 | 91麻豆精品国产91久久久久久久久 | 日本一区二区视频 | 91在线精品一区二区 | 91免费版在线看 | 日日干天天干 | 国产精品99久久免费观看 | 99久久婷婷国产综合精品电影 | 乳首在线| 黄色片免费观看网站 | 成人午夜| 日韩在线播放一区二区三区 | 国产一区二区视频在线 | 国产日韩欧美在线观看 | 99热首页| 久久精品成人 | 天天精品 | 欧洲成人 | 黄色一级片在线观看 | 日韩有码在线播放 | 欧美a级成人淫片免费看 | 久久免费看少妇a高潮一片黄特 | 老黄网站在线观看 | 亚洲2020天天堂在线观看 | 麻豆一区二区三区 | 成人午夜在线视频 | 九九r热|