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的处理