JSON:轻量级的数据交换格式,相对于XML,JSON解析速度更快,文档更小
结构:
1.名值对:{"name":"Sally","city":"北京","age":25}
属性值可以是string,number,boolean(true,false),null,object.属性名必须使用双引号,属性值如果是字符串要用双引号
2.值的有序列表(数组,集合):[value,value,value...] (可以互相套用)
使用JSON实现数据交换:java对象-->JSON字符串(web服务器)-->JSON字符串(客户端)-->JavaScript对象
JSON对象-->JavaScript对象:
1.var str = '{"name":"张三","age",18}'; var obj = eval("("+str+")");
2.使用原生对象JSON提供的parse()方法:var obj = JSON.parse(str);
3.var obj = str.parseJSON();(需要用到JSON.js文件)
JS中JSON对象(obj)-->String字符串:var str = obj.toJSONString();(需json.js); var str = JSON.stringify(obj);
java对象-->JSON对象(通过拼接JSON字符串重构对象属性)
JSONObject obj = JSONObject.fromObject(emp); String jsonStr = obj.toString(); java对象-->JSON对象
JSONArray jsonArr = JSONObject.formObject(arr); String jsonStr = jsonArr.toString(); java数组(集合)-->JSON对象
JSON对象-->Java对象
Emp emp = (Emp)JSONObject.toBean(obj,Emp.class); List<Emp> list = (List<Emp>)JSONArray.toCollection(jsonArr,Emp.class);
缓存问题:IE浏览器在发送GET请求时,如果访问过该地址不再发送请求(Chrome,Firefox继续发请求);解决(请求后加随机数):xxx.do?Math.random();
结构:
1.名值对:{"name":"Sally","city":"北京","age":25}
属性值可以是string,number,boolean(true,false),null,object.属性名必须使用双引号,属性值如果是字符串要用双引号
2.值的有序列表(数组,集合):[value,value,value...] (可以互相套用)
使用JSON实现数据交换:java对象-->JSON字符串(web服务器)-->JSON字符串(客户端)-->JavaScript对象
JSON对象-->JavaScript对象:
1.var str = '{"name":"张三","age",18}'; var obj = eval("("+str+")");
2.使用原生对象JSON提供的parse()方法:var obj = JSON.parse(str);
3.var obj = str.parseJSON();(需要用到JSON.js文件)
JS中JSON对象(obj)-->String字符串:var str = obj.toJSONString();(需json.js); var str = JSON.stringify(obj);
java对象-->JSON对象(通过拼接JSON字符串重构对象属性)
JSONObject obj = JSONObject.fromObject(emp); String jsonStr = obj.toString(); java对象-->JSON对象
JSONArray jsonArr = JSONObject.formObject(arr); String jsonStr = jsonArr.toString(); java数组(集合)-->JSON对象
JSON对象-->Java对象
Emp emp = (Emp)JSONObject.toBean(obj,Emp.class); List<Emp> list = (List<Emp>)JSONArray.toCollection(jsonArr,Emp.class);
缓存问题:IE浏览器在发送GET请求时,如果访问过该地址不再发送请求(Chrome,Firefox继续发请求);解决(请求后加随机数):xxx.do?Math.random();