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