json是客户端与服务端通信时使用的一种数据格式。是一种与语言无关的数据交换格式。json主要有如下两种数据结构。
1.由key-value对组成的数据结构
2.有序集合
java的json支持主要依赖与JsonArray和JsonObject两个类。
1.JsonArray代表一个json数组,他可以完成java集合与json字符串之间的转换
2.JsonObject代表一个json对象,他可以完成java对象与json字符串之间的转换
注意:本片文章主要介绍Android SDK提供的json和Google提供的gson
对象json化
//net.sf.json*
// JSONObject jobj = JSONObject.fromObject(user);
// String jstr = jobj.toString();
//com.google.gson.*
Gson gson = new Gson();
String jstr = gson.toJson(user);
集合json化
ArrayList<Userinfo> users = new ArrayList<Userinfo>();
//net.sf.json
// JSONArray jsonArray = JSONArray.fromObject(users);
// String jsonStr = jsonArray.toString();
Gson gson = new Gson();
String jsonStr = gson.toJson(users);
对json的解析
// 解析单个对象
// org.json
// JSONObject jobj = new JSONObject(result);
// user.setUserid(jobj.getInt("userid"));
// user.setUsername(jobj.getString("username"));
// user.setPassword(jobj.getString("password"));
// user.setIconimage(jobj.getString("iconimage"));
// com.google.gson
Gson gson = new Gson();
user = gson.fromJson(result, Userinfo.class);
// 解析集合
// org.json
// JSONArray jarr = new JSONArray(result);
// for(int i = 0 ;i<jarr.length();i++){
// JSONObject jobj = jarr.getJSONObject(i);
// user = new Userinfo();
// user.setUserid(jobj.getInt("userid"));
// user.setUsername(jobj.getString("username"));
// user.setPassword(jobj.getString("password"));
// user.setIconimage(jobj.getString("iconimage"));
// users.add(user);
// }
// com.google.gson
Gson gson = new Gson();
JsonParser jsonParser = new JsonParser();
JsonElement jsonElement = jsonParser.parse(result);
JsonArray jarr = jsonElement.getAsJsonArray();
Iterator it = jarr.iterator();
while (it.hasNext()) {
JsonObject jobj = (JsonObject) it.next();
System.out.println(jobj.toString());
user = gson.fromJson(jobj.toString(),
Userinfo.class);
users.add(user);
}
本片文章主要提供两种对json的处理