Gson解析数据
package com.bwie.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.bwie.test.JingDian.ResultBean;
import com.bwie.test.JingDian.ResultBean.RowsBean;
import com.bwie.test.JingDian.ResultBean.RowsBean.InfoBean;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
private String urlPath="http://api.fang.anjuke.com/m/android/1.3/shouye/recInfosV3/?city_id=14&lat=40.04652&lng=116.306033&api_key=androidkey&sig=9317e9634b5fbc16078ab07abb6661c5&macid=45cd2478331b184ff0e15f29aaa89e3e&app=a-ajk&_pid=11738&o=PE-TL10-user+4.4.2+HuaweiPE-TL10+CHNC00B260+ota-rel-keys%2Crelease-keys&from=mobile&m=Android-PE-TL10&cv=9.5.1&cid=14&i=864601026706713&v=4.4.2&qtime=20160411091603&pm=b61&uuid=1848c59c-185d-48d9-b0e9-782016041109&_chat_id=0";
private List<RowsBean> rowsBeans=new ArrayList<JingDian.ResultBean.RowsBean>();
private ListView lv;
private Handler handler=new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
//获得数据
String text=(String) msg.obj;
tojson(text);
break;
default:
break;
}
}
};
//-----------------gson解析 注意:需要导入gson.Jar包------------------------------------------------
//解析数据
private void tojson(String text) {
Gson gson=new Gson();
//类名
JingDian jingDian=gson.fromJson(text, JingDian.class);
Log.i("kkkkkkkkkk", jingDian.getResult().getRows().get(0).getInfo().getAddress()+"");
ResultBean resultBean=jingDian.getResult();
rowsBeans=resultBean.getRows();
//设置适配器
MyAdapter adapter=new MyAdapter(rowsBeans, this);
lv.setAdapter(adapter);
};
//-------------------------onCreate中---------------------------------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
//获得数据
huodeshuju();
}
//------------------------------------------
//获得数据
private void huodeshuju() {
//使用线程
new Thread(){
public void run() {
try {
//先创建出了一个URL对象,urlPath:是我们访问接口地址
URL url=new URL(urlPath);
//URL链接对象,通过URL对象打开一个connection链接对像
HttpURLConnection urlConnection=(HttpURLConnection) url.openConnection();
//设置urlConnection对象链接超时
urlConnection.setConnectTimeout(5000);
//设置urlConnection对象获取数据超时
urlConnection.setReadTimeout(5000);
//设置本次urlConnection请求方式
urlConnection.setRequestMethod("GET");
//调用urlConnection的链接方法,线程等待,等待的是服务器所给我们返回的结果集
// urlConnection.connect();
//获取本次网络请求的状态码
int code=urlConnection.getResponseCode();
//如果本次返回的状态吗是200(成功)
if (code==200) {
//调用urlConnection.getInputStream得到本次请求所返回的结果流
InputStream inputStream=urlConnection.getInputStream();
//创建一个BufferedReader,去读取结果流
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
String readLine;
StringBuffer buffer=new StringBuffer();
while ((readLine=reader.readLine())!=null) {
buffer.append(readLine);
}
//读取完结果流之后所得到的结果
String result=buffer.toString();
Log.i("数据:----", result);
Message message=new Message();
message.what=0;
message.obj=result;
handler.sendMessage(message);
inputStream.close();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}
}
Gson解析数据的更多相关文章
- 一起来开发Android的天气软件(四)——使用Gson解析数据
离上一篇文章过去才4.5天,我们赶紧趁热打铁继续完毕该系列的天气软件的开发. 承接上一章的内容使用Volley实现网络的通信.返回给我们的是这一串Json数据{"weatherinfo&qu ...
- Android中使用Gson解析JSON数据的两种方法
Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...
- Gson解析复杂的json数据
最近在给公司做一个直播APK的项目,主要就是通过解析网络服务器上的json数据,然后将频道地址下载下来再调用Android的播放器进行播放,原先本来打算使用普通的json解析方法即JsonObject ...
- Android网络之数据解析----使用Google Gson解析Json数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Gson解析Json格式数据
//数据定义:=========================================== class User{ String name; String password; String ...
- 使用Gson解析复杂的json数据
Gson解析复杂的json数据 最近在给公司做一个直播APK的项目,主要就是通过解析网络服务器上的json数据,然后将频道地址下载下来再调用Android的播放器进行播放,原先本来打算使用普通的jso ...
- Google Gson解析Json数据应用实例
转自:http://lixigao449778967.blog.163.com/blog/static/24985164201269105928783/ 1.需要的Jar包 1) Google Gso ...
- Gson解析第三方提供Json数据(天气预报,新闻等)
之前都是自己写后台,自己的server提供数据给client. 近期在看第三方的数据接口,訪问其它站点提供的信息.比方.我们可能自己收集的数据相当有限.可是网上提供了非常多关于天气预报.新闻.星座运势 ...
- 通过Gson解析Json数据
Json是一种数据格式,便于数据传输.存储.交换:Gson是一种组件库,可以把java对象数据转换成json数据格式. gson.jar的下载地址:http://search.maven.org/#s ...
随机推荐
- 小米2s刷机
每次系统内存不足,卡的不行就恨不得马上换新手机,发现手机也没有什么大的毛病,也没有其他苛刻的要求. 换个新系统继续使用吧,除了屏幕小了一点,将就了吧.物尽其责,坚决抵制过度消费. 小米手机2s 16G ...
- Chrome 自动填充的表单是淡黄色的背景怎么办!
chrome浏览器自动填充表单的黄色背景高亮(#FAFFBD)一直困扰着我,我之前没想着理它,可是最近一个登陆框,需要用到图标,于是我草率的直接设置在input元素里面,结果问题就来了,很难看很难看, ...
- 从MySQL全库备份中恢复某个库和某张表【转】
从MySQL全库备份中恢复某个库和某张表 一.全库备份-A [root@mha2 backup]#mysqldump -uroot -p123456 --default-character-set=u ...
- linux之ls -l|grep "^-"|wc -l命令
查看某文件夹下文件的个数 ls -l |grep "^-"|wc -l 或 find ./company -type f | wc -l 查看某文件夹下文件的个数,包括子文件夹里的 ...
- 将网页中的html代码的table保存成word文件
1.后台代码: string nowtime = DateTime.Now.ToString("yyyy-MM-dd"); Response.Clear(); Response.B ...
- c#实现输出本月的月历
效果如图: 代码如下: namespace WebForm { public partial class WebForm1 : System.Web.UI.Page { protected void ...
- jquery_核心_(1)
1.data([key],[value]) 概述 在元素上存放或读取数据,返回jQuery对象. 当参数只有一个key的时候,为读取该jQuery对象对应DOM中存储的key对应的值,值得注意的是,如 ...
- Oracle 10gR2 Dataguard搭建(非duplicate方式)
Oracle 10gR2 Dataguard搭建(非duplicate方式) 我的实验环境: 源生产库(主库): IP地址:192.168.1.30 Oracle 10.2.0.5 单实例 新DG库( ...
- C#连接ACCESS的一个问题
C# 连接ACCESS数据库有时候报 "Microsoft.Jet.Oledb.4.0"没有注册,其实,并不是真的没注册,可能是下面的原因 在菜单 “项目”的最下面 工程属性 菜单 ...
- 大数据量情况下求top N的问题
上周五的时候去参加了一个面试,被问到了这个问题.问题描述如下: 假如存在一个很大的文件,文件中的每一行是一个字符串.请问在内存有限的情况下(内存无法加载这个文件中的所有内容),如何计算出出现频率最高的 ...