JSON(JavaScriptObject Notation)、轻量级数据交换格式、非常适合于服务器与 JavaScript 的交互。
JSON之所以流行,是因为可以把JSON数据结构解析为有用的javascript对象
ECMAScript5对解析JSON的行为进行了规范,定义了全局对象JSON
JSON对象有两个方法:stringify()和parse()。这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript值
JSON的格式
{ "name":"huochai", "age":29, "school"}
varjsonD={"name":"张三","age":"12"}console.log(jsonD.name);console.log(jsonD.age);
stringify(), 将JavaScript对象序列化为JSON字符串
varperson=newObject(); person.name="张三"; person.age="12";console.log(person);varjsonObject=JSON.stringify(person);console.log(jsonObject);
JSON.parse方法用于将JSON字符串转化成对象
varperson=newObject(); person.name="张三"; person.age="12";console.log(person);varjsonObject=JSON.stringify(person);console.log(jsonObject);console.log(JSON.parse(jsonObject));
Servlet中将实体对象转为JSON字符串
User user=newUser("jack","j123");StringjsonUser=JSON.toJSONString(user);System.out.println(jsonUser);结果:{"password":"j123","userid":0,"username":"jack"}
Servlet中将List对象转为JSON字符串
创建一个保存集合的实体对象publicclassJsonObject{privateListlist;publicList getList() {returnlist; }publicvoidsetList(Listlist){this.list=list; }}
User user1=newUser("jack","j123"); User user2=newUser("tom","t123"); User user3=newUser("smith","s123");Listlist=newArrayList();list.add(user1);list.add(user2);list.add(user3); JsonObject tjo =newJsonObject(); tjo.setList(list); System.out.println(JSON.toJSONString(tjo));
ajax+artTemplate+servlet+fastjson的综合小实例
在实际开发中,我们会使用模板引擎来提高开发效率。而众多的模板引擎中,artTemplate无论就速度,兼容性还是使用人数上,都占绝对优势。这里我将简单地介绍下artTemplate的常见用法。
这其中涉及到的语法,我们只需要记住并且会用即可,不需要知道为什么这样用。
需要先使用一个type="text/html"的script标签存放模板
Serevlet User user1=newUser("jack","j123");StringjsonUser=JSON.toJSONString(user1); response.setContentType("text/html;charset=utf-8"); PrintWriter print = response.getWriter(); print.println(JSON.toJSONString(jsonUser)); print.close();
HTML
{{name}}
{{age}}
AjaxvarjsonList=JSON.parse(xhr.responseText);//json字符串转成json对象varhtml = template('test', jsonList);document.getElementById(container').innerHTML = html;
Serevlet User user1=newUser("jack","j123"); User user2=newUser("tom","t123"); User user3=newUser("smith","s123");Listlist=newArrayList();list.add(user1);list.add(user2);list.add(user3); JsonObject tjo =newJsonObject(); tjo.setList(list); String jsonList=JSON.toJSONString( tjo); response.setContentType("text/html;charset=utf-8"); PrintWriterprint= response.getWriter();print.println(JSON.toJSONString(tjo));print.close();
HTML 其中 list是服务端封装集合的实体对象属性名 必须一致 value表示集合的元素对象 i 表示下标 {{eachlist as value i}}
- {{value.username}}
- {{value.password}}
- {{value.userid}}
AjaxvarjsonList=JSON.parse(xhr.responseText);//json字符串转成json对象varhtml = template('test', jsonList);document.getElementById(container').innerHTML = html;