json解析+接口+网络请求+历史的今天
2016-06-30 15:31
459 查看
一、一个例子查询历史的今天发生的事件
1.去聚合数据或者阿凡达 申请历史的今天的APPkey
2.查看接口使用规范:
3.根据获取的数据:请求结果为:{"total":18,"result":[{"year":2003,"month":4,"day":9,"title":"著名剧作家吴祖光逝世","type":1},{"year":2002,"month":4,"day":9,"title":"中国出版集团在京成立","type":1},{"year":1998,"month":4,"day":9,"title":"麦加朝觐惨剧","type":1},{"year":1997,"month":4,"day":9,"title":"吴作人逝世","type":1},{"year":1997,"month":4,"day":9,"title":"国际商会三十二届世界大会在沪举行","type":1}],"error_code":0,"reason":"Succes"}
建立相应的javabean类。
二、代码部分
MainActivity.java类
两个bean类
布局文件
演示结果:
代码有点简单粗暴 嘻嘻
1.去聚合数据或者阿凡达 申请历史的今天的APPkey
2.查看接口使用规范:
3.根据获取的数据:请求结果为:{"total":18,"result":[{"year":2003,"month":4,"day":9,"title":"著名剧作家吴祖光逝世","type":1},{"year":2002,"month":4,"day":9,"title":"中国出版集团在京成立","type":1},{"year":1998,"month":4,"day":9,"title":"麦加朝觐惨剧","type":1},{"year":1997,"month":4,"day":9,"title":"吴作人逝世","type":1},{"year":1997,"month":4,"day":9,"title":"国际商会三十二届世界大会在沪举行","type":1}],"error_code":0,"reason":"Succes"}
建立相应的javabean类。
二、代码部分
MainActivity.java类
<span style="font-size:18px;">package com.example.t22_09_jsontwo; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.google.gson.Gson; public class MainActivity extends Activity { private HttpResponse httpResponse = null; private HttpEntity httpEntity = null; private Button bt; private EditText et1,et2; private TextView showtv; String sp; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt=(Button) findViewById(R.id.subb); et1=(EditText) findViewById(R.id.yue); et2=(EditText) findViewById(R.id.ri); showtv=(TextView) findViewById(R.id.show); sp=GetStringURL(); bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub new Thread(networkTask).start(); } }); } private String GetStringURL() { // TODO Auto-generated method stub String s="http://api.avatardata.cn/HistoryToday/LookUp?key=c43bdd056d034bf6be97e12993bf8362"; String p="&type=1&page=1&rows=5"; String n="&yue="+et1.getText().toString(); String m="&ri="+et2.getText().toString(); return s+n+m+p; } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); Bundle data = msg.getData(); String val = data.getString("value"); Log.i("mylog", "请求结果为:" + val); Gson gson = new Gson(); Aaa w = gson.fromJson(val, Aaa.class); List<Bbb> bs=new ArrayList<Bbb>(); bs=w.result; StringBuffer temp=new StringBuffer(); for(int i=0;i<bs.size();i++) { String s=bs.get(i).year+"年"+bs.get(i).month+"月 "+bs.get(i).day+"日 "+" 事件:"+bs.get(i).title+"\n"; temp.append(s); //System.out.println(bs.get(i).month+"月 "+bs.get(i).day+"日 "+" 事件:"+bs.get(i).title); } showtv.setText(temp); } }; Runnable networkTask = new Runnable() { @Override public void run() { URI r=null; sp=GetStringURL(); try { r=new URI(sp); } catch (URISyntaxException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } HttpGet httpGet = new HttpGet(r); // 生成一个Http客户端对象 HttpClient httpClient = new DefaultHttpClient(); // 使用Http客户端发送请求对象 InputStream inputStream = null; try { // 返回给我们的响应 httpResponse = httpClient.execute(httpGet); // 发给我们的响应的内容 httpEntity = httpResponse.getEntity(); inputStream = httpEntity.getContent(); BufferedReader reader = new BufferedReader( new InputStreamReader(inputStream)); String result = ""; String line = ""; while ((line = reader.readLine()) != null) { result = result + line; } Message msg = new Message(); Bundle data = new Bundle(); data.putString("value", result); msg.setData(data); handler.sendMessage(msg); } catch (Exception e) { e.printStackTrace(); } finally { try { inputStream.close(); } catch (Exception e) { e.printStackTrace(); } } } }; } </span>
两个bean类
<span style="font-size:18px;">package com.example.t22_09_jsontwo; import java.util.List; public class Aaa { int total; List<Bbb> result; int error_code; String reason; } </span>
<span style="font-size:18px;">package com.example.t22_09_jsontwo; public class Bbb { int year; int month; int day; String title; @Override public String toString() { // TODO Auto-generated method stub return year+"-"+month+"-"+title; } } </span>
布局文件
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/yue" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入月份" android:inputType="text" /> <EditText android:id="@+id/ri" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入几号" android:inputType="text" /> <Button android:id="@+id/subb" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="获取数据" /> <TextView android:id="@+id/show" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#FFA07A" android:textSize="20sp" android:layout_margin="10dp" /> </LinearLayout></span>
演示结果:
代码有点简单粗暴 嘻嘻
相关文章推荐
- 使用 Python 处理 JSON 格式的数据
- XML 与 JSON 优劣对比
- VBA将excel数据表生成JSON文件
- newtonsoft.json解析天气数据出错解决方法
- vbs 解析json jsonp的方法
- Ruby和Ruby on Rails中解析JSON格式数据的实例教程
- Extjs4如何处理后台json数据中日期和时间
- C#实现将类的内容写成JSON格式字符串的方法
- JQuery ajax返回JSON时的处理方式 (三种方式)
- jquery JSON的解析方式示例介绍
- c#版json数据解析示例分享
- ASP JSON类文件的使用方法
- C# JSON格式化转换辅助类 ConvertJson
- C#实现对Json字符串处理实例
- C#实现Json转Unicode的方法
- php解析json数据实例
- PHP中JSON的应用技巧
- PHP6 先修班 JSON实例代码
- 关于JSON以及JSON在PHP中的应用技巧
- .Net中的json操作类用法分析