解析json
- 1:解析单个对象的json
- 例如:Master mm = new Master();
mm.setName(“zhangsan”);
mm.setPwd(“123”);
JSONObject json = new JSONObject();
json.put(“master”, mm); 此时的json只是单纯的携带了一个对象,到jsp界面的时候
success:function(result){} 中的result,只是单个的Master对象,单纯的用.就可以调出对象的各种属性和方法
2:解析多个对象的json,即json传递的不再是单个的对象,而是包含多个对象的list集合
Master mm1 = new Master();
mm1.setName(“zhangsan1”);
mm1.setPwd(“12”);
Master mm2 = new Master();
mm2.setName(“zhangsan2”);
mm2.setPwd(“122”);
Master mm3 = new Master();
mm3.setName(“zhangsan3”);
mm3.setPwd(“124”);
List list = new ArrayList();
list.add(mm1);
list.add(mm2);
list.add(mm3);
JSONObject json = new JSONObject();
json.put(“lista”,list); 此时的json携带的是一个list集合,json的key是lista,而值是list
success:function(json){} 此时的json是一个键值对,建是lista,值是list,
所以,在解析的时候需要先获取json的key,
此时的json就像是一个map,需要用增强for,或者是迭代Iterator对象,解析
a:增强for解析
for(int key in json){
alert(key); 获取键
alert(result[key]); 通过键获取值
}
b:Iterator跌代获取
Set<Sring> set = json.keySet(); 获取json的键集,键可能不止一个
Iterator<String> it = set.iterator(); 通过键集去获取Iterator对象
while(it.hasNext()){
String keya = it.next(); 每一次循环,都获取相对应的键
List<Master> listt = (List<Master>) json.get(keya); 通过keya获取json的value,返回一个list集合
for(Master ma:listt){ 遍历json的value值,即遍历list集合
System.out.println(ma.getName());
}
}