上一篇写了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字符串,简单形式和复杂形式。
Android解析Json数据的PPT和源码
Android解析JSON格式
一个用eclipse开发的android解析json数据的例子
android解析JSON的例子 JSON的介绍
安卓Android源码——安卓Android 解析json_dome.zip
android解析JSON数据详解借鉴.pdf
Android 解析json_dome.zip源码资源下载Android 解析json_dome.zip源码资源下载
android解析json格式数据代码,代码中有详细的注释,libs包中有需要的第三方类库,直接导入即可使用。包含三种解析json的方式:1.没有实体对象的情况下解析json字符串 2.有实体对象的情况下解析单个json数据 3.有...
Android 解析json_dome,友友们我会更新更多的源码和大家分享,希望大家喜欢
Android程序研发源码Android 解析json_dome
android 解析json数据 代码比较乱 分不多的就别下了 下载后解析数据的地址替换为自己的json接口地址
android解析JSON数据详解.pdf
android解析json的三种方法源代码,还包括gson和fastjson的jar文件
Android 解析json_dome.rar
Android 解析json_dome.zip
老罗android视频开发源码和ppt---android 解析json