Android-JSON简单应用
JSON定义:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition -December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java,JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速度)。
Andorid中的使用:
1.封装JSON
Android中封装有类JSONObject,用于保存JSON。该类通过put方法将数据置入JSONObject中。JSONObject除存放int,boolean等基本类型外,还可存放JSONObject类型及JSONArray类型。具体使用代码如下:
btnTest.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub JSONObject jsonObject = new JSONObject(); try { jsonObject.put("name", "JACK"); JSONObject Tel = new JSONObject(); Tel.put("homeTel", "123456"); Tel.put("companyTel", "654321"); jsonObject.put("Tel", Tel); JSONArray Address = new JSONArray(); Address.put("NingBo"); Address.put("Shanghai"); jsonObject.put("Address", Address); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } etTest.setText(jsonObject.toString()); } });
点击ReadJson按钮后系统将JSONObject显示在EditText中。效果图:
2.解析JSON
系统获取JSONObject对象后,利用getXXX函数,获取JSON中相应参数
Code:
btnTest.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub String JSON = "{\"name\":\"JACK\"," + "\"Address\":[\"Ningbo\",\"Shanghai\"]," + "\"Tel\":{\"companyTel\":\"654321\",\"homeTel\":\"123456\"}}"; String strOutput = "NULL"; try { JSONObject jsonObject = new JSONObject(JSON); String strName = jsonObject.getString("name") + "\n"; JSONArray jsonArray = jsonObject.getJSONArray("Address"); String strAddress = jsonArray.getString(0) + "," + jsonArray.getString(1) + "\n"; JSONObject Tel = jsonObject.getJSONObject("Tel"); String strCompanyTel = Tel.getString("companyTel"); String strHomeTel = Tel.getString("homeTel"); String strTel = strCompanyTel + "," + strHomeTel; strOutput = strName + strAddress + strTel; } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { etTest.setText(strOutput); } } });
效果图:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。