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);
}
}
});
效果图:
转载请注明出处:http://blog.csdn.net/miaoyunzexiaobao