Json入门 分类: C_OHTERS 2014-04-23 16:20 601人阅读 评论(0) 收藏
2014-04-23 16:20
393 查看
参考《疯狂android讲义》》730页
JSON的基础请参考W3SCHOOL的教程:
http://www.w3school.com.cn/json/index.asp
例子:
http://wenku.baidu.com/link?url=A5SiKBUNVx-aB_hFiDuHsEN1uw_Vu4a9ODRq7G-SpiY-qW11Ve8Ba8ym9TfheAUuHJhYgdD3g05lvGNWrPBzf7JZFhUlAcZYb0MMIdrcmp3
1、创建服务器端:
(1)创建对象类
(2)创建json的提供类
2、创建android客户端
注意要添加访问internet的权限。
JSON的基础请参考W3SCHOOL的教程:
http://www.w3school.com.cn/json/index.asp
例子:
http://wenku.baidu.com/link?url=A5SiKBUNVx-aB_hFiDuHsEN1uw_Vu4a9ODRq7G-SpiY-qW11Ve8Ba8ym9TfheAUuHJhYgdD3g05lvGNWrPBzf7JZFhUlAcZYb0MMIdrcmp3
1、创建服务器端:
(1)创建对象类
package com.ljh.jsondemo.model; public class User { public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } private int id; private String name; private String email; private String gender; }
(2)创建json的提供类
package com.ljh.jsondemo.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.json.JSONArray; import org.json.JSONObject; import com.ljh.jsondemo.model.User; public class JsonDemoServlet extends HttpServlet { private static final long serialVersionUID = -7368225680407826408L; private List<User> list; /** * 处理post方式提交的数据 */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } /** * 处理get方式提交的数据 */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain"); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); // 准备用户数据 prepareData(); // JSON数组 JSONArray array = new JSONArray(); for (User bean : list) { // 单个用户JSON对象 JSONObject obj = new JSONObject(); try { obj.put("id", bean.getId()); obj.put("name", bean.getName()); obj.put("email", bean.getEmail()); obj.put("gender", bean.getGender()); } catch (Exception e) { } array.put(obj); } // 输出 out.write(array.toString()); out.flush(); out.close(); } private void prepareData() { list = new ArrayList<User>(); User bean1 = new User(); bean1.setId(1001); bean1.setName("Tony"); bean1.setEmail(""); bean1.setGender("male"); list.add(bean1); User bean2 = new User(); bean2.setId(1002); bean2.setName("Jack"); bean2.setEmail(""); bean2.setGender("male"); list.add(bean2); User bean3 = new User(); bean3.setId(1003); bean3.setName("Marry"); bean3.setEmail(""); bean3.setGender("female"); list.add(bean3); User bean4 = new User(); bean4.setId(1004); bean4.setName("Linda"); bean4.setEmail(""); bean4.setGender("female"); list.add(bean4); } }
2、创建android客户端
注意要添加访问internet的权限。
package com.ljh.jsondemoclient; import java.io.BufferedReader; import java.io.InputStreamReader; 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 org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.json.JSONArray; import org.json.JSONObject; import android.os.Bundle; import android.app.Activity; import android.widget.TextView; public class MainActivity extends Activity { private String getContent(String url) throws Exception { StringBuilder sb = new StringBuilder(); HttpClient client = new DefaultHttpClient(); HttpParams httpParams = client.getParams(); // 设置网络超时参数 HttpConnectionParams.setConnectionTimeout(httpParams, 3000); HttpConnectionParams.setSoTimeout(httpParams, 5000); HttpResponse response = client.execute(new HttpGet(url)); HttpEntity entity = response.getEntity(); if (entity != null) { System.out.println("test!!!!"); BufferedReader reader = new BufferedReader(new InputStreamReader( entity.getContent(), "UTF-8"), 8192); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } reader.close(); } return sb.toString(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try { StringBuffer sb = new StringBuffer(); // 在测试过程中,经常是用本机做测试服务器,访问本机的IP地址要设置为10.0.2.2 String url = "192.168.136.133:8080/JsonDemoServer/JsonDemoServlet"; String body = getContent(url); JSONArray array = new JSONArray(body); for (int i = 0; i < array.length(); i++) { JSONObject obj = array.getJSONObject(i); sb.append("id:").append(obj.getInt("id")).append("\t"); sb.append("name:").append(obj.getString("name")).append("\r\n"); sb.append("gender:").append(obj.getString("gender")) .append("\t"); sb.append("email:").append(obj.getString("email")) .append("\r\n"); sb.append("----------------------\r\n"); } TextView textView = (TextView) findViewById(R.id.tv_json_content); textView.setText(sb.toString()); } catch (Exception e) { } } }
相关文章推荐
- JSON入门之二:org.json的基本用法 分类: C_OHTERS 2014-05-14 11:25 6001人阅读 评论(0) 收藏
- Gora快速入门 分类: C_OHTERS 2015-01-30 09:55 465人阅读 评论(0) 收藏
- JSON之三:获取JSON文本并解释(以google的天气API为例) 分类: C_OHTERS 2014-05-14 16:35 2209人阅读 评论(0) 收藏
- Mahout快速入门教程 分类: B10_计算机基础 2015-03-07 16:20 508人阅读 评论(0) 收藏
- sqoop 1.4.4-cdh5.1.2快速入门 分类: C_OHTERS 2015-06-06 11:40 208人阅读 评论(0) 收藏
- Json概述以及python对json的相关操作 分类: python学习 2014-06-23 11:10 188人阅读 评论(0) 收藏
- GitHub项目协作基本步骤 分类: C_OHTERS 2013-09-23 21:31 690人阅读 评论(0) 收藏
- Java解析HTML之HTMLParser使用与详解 分类: C_OHTERS 2014-05-19 21:46 2309人阅读 评论(0) 收藏
- HtmlParser基础教程 分类: C_OHTERS 2014-05-22 11:33 1649人阅读 评论(1) 收藏
- 【PYTHON】入门总结 高阶函数 分类: python 2015-05-05 19:30 3人阅读 评论(0) 收藏
- shell入门之变量测试 分类: 学习笔记 linux ubuntu 2015-07-10 15:49 31人阅读 评论(0) 收藏
- shell入门之函数应用 分类: 学习笔记 linux ubuntu 2015-07-10 21:48 77人阅读 评论(0) 收藏
- .net中将Json包装类 分类: .NET 2013-11-26 10:43 690人阅读 评论(0) 收藏
- HttpClient基础教程 分类: C_OHTERS 2014-05-18 23:23 2600人阅读 评论(0) 收藏
- iOS开发网络篇—JSON介绍 分类: ios开发 2015-01-24 15:01 137人阅读 评论(0) 收藏
- Python装饰器学习(九步入门) 分类: python学习 2015-03-06 14:26 90人阅读 评论(0) 收藏
- 入门视频采集与处理(BT656简介) 分类: 生活百科 2013-07-26 11:03 351人阅读 评论(0) 收藏
- 博弈论入门小结 分类: ACM TYPE 2014-08-31 10:15 73人阅读 评论(0) 收藏
- 说说JSON和JSONP,也许你会豁然开朗,含jQuery用例 分类: JavaScript 2014-09-23 10:41 218人阅读 评论(1) 收藏
- Maven基础教程 分类: C_OHTERS 2015-04-10 22:53 232人阅读 评论(0) 收藏