分析:
前后端对于json的使用方式不一样;json语法格式不做介绍;
前端:
json的引入方式:<script src=“js/json2.js”><script>;
//删除方法:delete(key);
操作:
json格式的字符串与json对象的字符串相互转化;
json对象转化为字符串:
formJson{"name":“毛寒”,“ID”:“lovewen”};
var Data = JSON.stringify(fromJson);
document.write(Data) == "{"name":“毛寒”,“ID”:“lovewen”}";
用ajax传入java服务器:
$.ajax({ url :"servlet/Login",
type:"post",
data:"{“mydata”:Data,.......}"
});
java服务器传来的json格式字符串,success接收后需要转换为json对象;
var jsonOBJ = JSON.parse(jsonString);
java服务器端json技术:
(java环境下和js环境下json对象数据类型有区别;因为java和js数据类型不同;)
第一步:载入依赖包(v:版本号)
{commons-beanutils-v.jar # commons-collections-v.jar # commons-lang-v.jar # commons-logging-v.jar # ezmorph-v.jar # json-lib-v.jar } ;
JSONObject类核心功能:
(JSONObject是一个final类继承了顶级父类object实现了json接口);
JSONObject构造方法:
JSONObject (); //创建一个空的JSONObject对象;也有带参构造方法;
常用API:(分两类):
一:json对象与其他类型相互转换:
//测试jsonobj两类API和jsonAArray;
public void Jsondemo(){
//从其他数据obj:(map、Bean、String)构建一个json对象;Bean:严格规范的实体类;
//方法一(obj类型转换成jsonobj类型):static JSONObject fromobject(Object obj);
//方法二(反转):static Object JSONObject.toBean(Object object,Class class);
//1.从map构建json且反转实例;
Map map =new HashMap();
map.put("name","毛寒");
JSONObject jsonObject = JSONObject.fromObject(map);
System.out.println(jsonObject);
//反转:
map = (Map)JSONObject.toBean(jsonObject,Map.class);
System.out.println(map);
//Bean、String:与Map原理一样,代入即可;
二:对json对象内部数据执行的CRUD和遍历等操作:
//增加和修改:obj.put(key:value);
//删除与清空:obj.remove(key); obj.clear();
//遍历操作:
JSONObject object =new JSONObject();
object.put("name1","毛寒");
object.put("name2","毛寒子");
object.put("name3","雯儿");
object.put("name4","雯雯");
object.put("name5","可可");
String name = object.getString("name3");
System.out.println(name);
//遍历(迭代器方法进行遍历);
Iterator keys = object.keys();
Object obj;
while (keys.hasNext()){
obj = jsonObject.get(keys.next());
System.out.println(obj);
}
JSONArray类:
相当于js中的json对象那个数组;java服务端JSONArray对象可封装从数据库获取的对象集合(结果集)并与前端js环境下的json对象数组相对应;(操作方法基本和javaArray相同);
构造器:JSONArray obj = new JSONArray();
对象转化:JSONArray.formObject(object); object:一般是集合对象;List、Array以及符合要求的把实体对象数组转化为JSONArray对象;
增加、修改、删除:add(JSONObject)//必须是JSONObject对象;remove(int index);toArray()[index];
前后端分离:
前端页面中的关键变量名最好与实体类中成员变量名保持一致;方便json对象与实体类对象之间的转换;