HttpURLConnection 数据请求+Gson解析,Listview展示

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {
    ListView lv;
    List<Data> list = new ArrayList<Data>();
    Context context;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        context = this;
        lv = (ListView) findViewById(R.id.lv);
        new Thread() {
            @Override
            public void run() {
                gethttpconnection("http://www.yasite.net/shopapi/index.php/goodController/getGoodList/");
            }
        }.start();

}

Handler handler = new Handler() {//主线程

@Override
        public void handleMessage(Message msg) {
            if (msg.what == 2) {
                myadapter adapter = (myadapter) msg.obj;
                lv.setAdapter(adapter);
            }

}

};

public void gethttpconnection(String Url) {
        try {
            URL url = new URL(Url);
            HttpURLConnection hc = (HttpURLConnection) url.openConnection();
            hc.setRequestMethod("GET");//get请求,必须大写
            hc.setReadTimeout(2000);//读取超时
            hc.setConnectTimeout(5000);//请求超时
            if (hc.getResponseCode() == 200) {//正常请求
                InputStream is = hc.getInputStream();
                byte[] b = new byte[is.available()];
                is.read(b);
                String str = new String(b, 0, b.length);
                Gson gson = new Gson();
                Values values = gson.fromJson(str, Values.class);
                list = values.getData();
                myadapter adapter = new myadapter();
                handler.sendMessage(handler.obtainMessage(2, adapter));//发送

}

} catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

class myadapter extends BaseAdapter {//Baseadapter

@Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }

@Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

@Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

@Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            View view = LayoutInflater.from(context).inflate(R.layout.showhttp,
                    null);
            TextView tv = (TextView) view.findViewById(R.id.tv);
            tv.setText(list.get(position).toString());
            return view;
        }

}

}

Gson数据解析实例

package com.example.testhttpconnection_2;

import java.util.List;

public class Values {
    private List<Data> data;
    private int res;

public Values(List<Data> data, int res) {
        super();
        this.data = data;
        this.res = res;
    }

public List<Data> getData() {
        return data;
    }

public void setData(List<Data> data) {
        this.data = data;
    }

public int getRes() {
        return res;
    }

public void setRes(int res) {
        this.res = res;
    }
}

data实例

package com.example.testhttpconnection_2;

public class Data {
private String goods_id;
private String goods_sn;
private String goods_name;
private String goods_thumb;
private String goods_img;
private String goods_price;
private String shop_price;
public Data(String goods_id, String goods_sn, String goods_name,
        String goods_thumb, String goods_img, String goods_price,
        String shop_price) {
    super();
    this.goods_id = goods_id;
    this.goods_sn = goods_sn;
    this.goods_name = goods_name;
    this.goods_thumb = goods_thumb;
    this.goods_img = goods_img;
    this.goods_price = goods_price;
    this.shop_price = shop_price;
}
public String getGoods_id() {
    return goods_id;
}
public void setGoods_id(String goods_id) {
    this.goods_id = goods_id;
}
public String getGoods_sn() {
    return goods_sn;
}
public void setGoods_sn(String goods_sn) {
    this.goods_sn = goods_sn;
}
public String getGoods_name() {
    return goods_name;
}
public void setGoods_name(String goods_name) {
    this.goods_name = goods_name;
}
public String getGoods_thumb() {
    return goods_thumb;
}
public void setGoods_thumb(String goods_thumb) {
    this.goods_thumb = goods_thumb;
}
public String getGoods_img() {
    return goods_img;
}
public void setGoods_img(String goods_img) {
    this.goods_img = goods_img;
}
public String getGoods_price() {
    return goods_price;
}
public void setGoods_price(String goods_price) {
    this.goods_price = goods_price;
}
public String getShop_price() {
    return shop_price;
}
public void setShop_price(String shop_price) {
    this.shop_price = shop_price;
}
@Override
public String toString() {
    return "Data [goods_id=" + goods_id + ", goods_sn=" + goods_sn
            + ", goods_name=" + goods_name + ", goods_thumb=" + goods_thumb
            + ", goods_img=" + goods_img + ", goods_price=" + goods_price
            + ", shop_price=" + shop_price + "]";
}

}

时间: 2024-12-15 10:21:45

HttpURLConnection 数据请求+Gson解析,Listview展示的相关文章

ios 解决数据请求json解析字典后,由于java某些类库转换json字符串后出现键值为&lt;null&gt;无法保存在userDefault的问题

解决数据请求json解析字典后,由于java某些类库转换json字符串后出现键值为<null>无法保存在userDefault. 打印下得到的字典数据: “username”=<null> 此时如果将字典保存到userDefault中会报错 所以需要遍历字典将其替换 for (NSString*s in [Dict1 allKeys]) { if ([Dict1[s] isEqual:[NSNull null]]) { [Dict1 setObject:@""

关于listview中图片切圆,网络请求数据,并Gson解析后得到list

切圆的方法: public Bitmap toRoundBitmap(Bitmap bitmap) { int width = bitmap.getWidth(); int height = bitmap.getHeight(); float roundPx; float left, top, right, bottom, dst_left, dst_top, dst_right, dst_bottom; if (width <= height) { roundPx = width / 2; l

Android网络之数据解析----使用Google Gson解析Json数据

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4063452.html 联系方式:[email protected] [正文] 文章回顾: Android网络之数据解析----SAX方式解析XML数据 一.Json数据的介绍                                                             

Gson解析第三方提供Json数据(天气预报,新闻等)

之前都是自己写后台,自己的server提供数据给client. 近期在看第三方的数据接口,訪问其它站点提供的信息.比方.我们可能自己收集的数据相当有限.可是网上提供了非常多关于天气预报.新闻.星座运势.身份证号.车辆违章.健康医疗.快递查询.ip查询.翻译等的api接口.基本返回数据为类型json和xml 我就喜欢简单便捷的东西.在这解析一下第三方新闻的接口返回的json数据: 我喜欢用谷歌提供的Gson,感觉比JSON去解析要简单.方便,快捷:当然了阿里巴巴提供的fastjson也是极好的.在

Android:使用Gson解析复杂的JSON数据

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,目前广泛使用.本文主要讲解android如何解析复杂格式的JSON数据,适合android初学者和初步接触JSON的人. 1.JSON相关介绍: 首先了解一下JSON的相关内容,JSON中的数据是以键值对的形式出现的.例如"name":"jack":这就是一个键值对,可以理解为name=jack.JSON中很重要的两个概念就是数组(array)和对象(object),初学者

android 解析数据之Gson

1.套路开始:先在android studio的setting中加入GsonFormat的插件 2.选好你要加载的Json数据 3.进入你需要加载的Json界面,将数据复制,并创建一个类 我这里创建的类名叫TvInfo(你可以根据实际情况取名),进入后(alt+s)GsonFormat快捷键,把你复制的数据粘贴到框内并自动生成代码即可 TvInfo package com.chuanxidemo.shaoxin.demo09; /** * Created by shaoxin on 2017/2

我的Android进阶之旅------&gt;解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题

1.问题描述 首先,需要解析的Json数据类似于下面的格式: { ret: 0, msg: "normal return.", news: [ { id: "NEW2016062800875700", from: "腾讯新闻客户端", qqnews_download_url: "http://inews.qq.com/m?refer=openapi_for_xiaotiancai", articletype: "1&

gson解析通过okhttp获取的json格式数据(转载)

本文采用okhttp库获取聚合网提供的免费接口数据,完成一个手机号码归属地查询功能. 其请求接口格式如下: 数据返回结果: 首先添加gson和okhttp的引用,gson我是直接下载jar包的: compile 'com.squareup.okhttp3:okhttp:3.2.0' compile files('C:/Users/Administrator/AndroidStudioProjects/ExOkhttp/libs/gson-2.3.1.jar') 采用get方法,获取数据主要代码如

Android中使用Gson解析JSON数据的两种方法

Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组