上一篇写了java产生json
http://zhangfan822.iteye.com/blog/1880830
这一篇就来写android解析访问servlet返回得到的json
其实上一篇也写了解析的内容..下在直接上代码吧.
解析单数据与多数据的json
单数据{'singer':{'id':01,'name':'zhangfan','gender':'男'}} 多个数据 {"singers":[ {'id':02,'name':'zf','gender':'男'}, {'id':03,'name':'jerry,'gender':'男'}, {'id':04,'name':'jim,'gender':'男'}, {'id':05,'name':'lily,'gender':'女'} ]}
public class JsonActivity extends Activity { private TextView tvJson; private Button btnJson; private Button btnJsonMulti; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tvJson = (TextView) this.findViewById(R.id.tvJson); btnJson = (Button) this.findViewById(R.id.btnJson); btnJsonMulti = (Button) this.findViewById(R.id.btnJsonMulti); btnJson.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //普通Json数据 String strUrl = "http://10.0.2.2:8080/myServlet/JsonServlet1"; //获得返回的Json字符串 String strResult = connServerForResult(strUrl); //解析Json字符串 parseJson(strResult); } }); btnJsonMulti.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //多个数据的Json String strUrl = "http://10.0.2.2:8080/myServlet/JsonServlet2"; //String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGERS); String strResult = connServerForResult(strUrl); //获得多个Singer parseJsonMulti(strResult); } }); } //访问servlet得到json数据 private String connServerForResult(String strUrl) { // HttpGet对象 HttpGet httpRequest = new HttpGet(strUrl); String strResult = ""; try { // HttpClient对象 HttpClient httpClient = new DefaultHttpClient(); // 获得HttpResponse对象 HttpResponse httpResponse = httpClient.execute(httpRequest); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { // 取得返回的数据 strResult = EntityUtils.toString(httpResponse.getEntity()); } } catch (ClientProtocolException e) { tvJson.setText("protocol error"); e.printStackTrace(); } catch (IOException e) { tvJson.setText("IO error"); e.printStackTrace(); } return strResult; } // 普通Json数据解析 private void parseJson(String strResult) { try { JSONObject jsonObj = new JSONObject(strResult).getJSONObject("singer"); int id = jsonObj.getInt("id"); String name = jsonObj.getString("name"); String gender = jsonObj.getString("gender"); tvJson.setText("ID号"+id + ", 姓名:" + name + ",性别:" + gender); } catch (JSONException e) { System.out.println("Json parse error"); e.printStackTrace(); } } //解析多个数据的Json private void parseJsonMulti(String strResult) { try { JSONArray jsonObjs = new JSONObject(strResult).getJSONArray("singers"); String s = ""; for(int i = 0; i < jsonObjs.length() ; i++){ JSONObject jsonObj = ((JSONObject)jsonObjs.opt(i)).getJSONObject("singer"); int id = jsonObj.getInt("id"); String name = jsonObj.getString("name"); String gender = jsonObj.getString("gender"); s += "ID号"+id + ", 姓名:" + name + ",性别:" + gender+ "\n" ; } tvJson.setText(s); } catch (JSONException e) { System.out.println("Jsons parse error !"); e.printStackTrace(); } } }
相关推荐
这个压缩包"Android应用源码之Android 解析json_dome.zip"提供了关于如何在Android应用中解析JSON的示例代码,对于学习Android开发中的网络数据处理非常有帮助。 首先,我们需要了解JSON的基本结构。JSON基于...
本教程聚焦于老罗讲解的Android解析JSON数据的源码分析,这对于深入理解JSON处理以及优化应用程序性能至关重要。 首先,我们需要了解JSON的基本结构。JSON是一种基于键值对的格式,数据以键值对的形式存储,如{"key...
Android 解析 JSON 字符串 Android 解析 JSON 字符串是 Android 应用程序中非常常见的一种数据交互方式。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和...
2. **Android解析JSON的库** 在Android中,我们通常使用两种库来解析JSON数据: - `org.json`:这是Android SDK自带的库,提供了JSONObject和JSONArray类,可以方便地解析JSON对象和数组。 - `...
在“Android解析json速度对比”的测试中,我们通常会设置一个标准的JSON数据集,然后使用这三个库进行反序列化操作,并记录每种库所花费的时间。测试方法可能包括以下步骤: 1. **数据准备**:创建一个包含大量键值...
这个资料包包含了一个关于Android解析JSON数据的PPT和源码,可以帮助开发者深入理解和实践Android中如何处理JSON数据。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号括起来,后跟冒号,值可以是...
下面将详细阐述Android解析JSON的基本步骤和涉及的技术点。 首先,要理解JSON的结构。JSON由键值对组成,可以是对象(对象以大括号{}包围)或数组(数组以方括号[]包围)。例如: ```json { "name": "John", ...
本资料“安卓Android源码——安卓Android 解析json_dome.zip”聚焦于如何在Android应用中解析JSON数据,为开发者提供了实践案例和代码示例。以下将详细介绍Android中处理JSON的相关知识点。 1. JSON基本结构: ...
二、Android解析JSON 在Android中,我们通常使用两种方式解析JSON:Gson库和JSON-Parsing API(如`org.json`库)。 1. Gson库 Google提供的Gson库可以方便地将JSON字符串转换为Java对象,反之亦然。首先,你需要在...
以下是一些关于Android解析JSON的关键知识点: 1. **JSON基本结构**:JSON由键值对(key-value pairs)组成,数据以对象(objects)或数组(arrays)的形式存储。对象用花括号{}包围,数组用方括号[]包围。键是字符...
### Android解析JSON格式 在Android应用开发中,与服务器交互获取数据是常见需求之一,而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。因此,掌握...
本资源包“老罗android视频开发源码和ppt--android 解析json”是由知名讲师罗升阳(老罗)提供的,旨在帮助开发者深入理解如何在Android平台上解析和处理JSON数据。罗升阳先生以其深入浅出的教学风格和丰富的实战...
总结,Android解析JSON数据是常见的任务,开发者可以选择不同的库和方法来实现。理解JSON的结构,熟练使用解析库,以及妥善处理网络请求和异步操作,是提升Android开发能力的关键步骤。通过阅读给定的博客文章,可以...
本教程将围绕“Android解析json_dome”这一主题,详细介绍如何在Android应用中解析JSON数据。 首先,我们需要理解JSON的基本结构。JSON数据以键值对的形式存储,可以是对象({})、数组([])、字符串("...")、...
这个“Android解析json_dome.zip”源码资源包含了一系列关于如何在Android平台上解析JSON数据的示例。以下是相关知识点的详细说明: 1. JSON基本结构: JSON基于JavaScript语法,但独立于语言,主要由键值对(key-...
2. Android解析JSON库: Android提供了两个内置库来处理JSON数据:`org.json`和`com.google.gson`。`org.json`库适用于简单的JSON操作,而`com.google.gson`库功能更强大,支持复杂对象的序列化和反序列化。 3. `...
这个“Android解析json_dome.rar”压缩包可能包含了关于如何在Android应用中解析JSON数据的示例代码和相关教程。下面我们将深入探讨Android中解析JSON的常用方法和技术。 首先,Android提供了两种主要的方式来处理...
本资源“Android高级应用源码-Android 解析json_dome.zip”显然是一个关于如何在Android应用程序中解析JSON的示例项目。这个项目可能包含了多种解析JSON的方法和技术,旨在帮助开发者理解和掌握Android中的JSON处理...