简介:从javascript1.2开始,创建对象有了一种更为简便的方法----使用JSON语法可以避免书写函数,也可以避免使用new关键字,可以直接创建一个javascript对象。为了创建javascript对象,可以使用花括号,然后将每个属性写成"key:value"对的形式。
使用JSON语法创建javascript对象时,属性值不仅可以是普通字符串,也可以是任何基本数据类型,还可以是函数,数组,甚至另一个JSON语法创建的对象。如:
<script type="text/javascript"> var person = { name : "夜半风雨", gender : "男", age : 22, schools : ['小学','中学','大学'], parents : [ { name : "father", age : 50, address : "广州" } , { name : "mother", age : 45, address : "广州" } ], say : function() { document.writeln("姓名:"+this.name+" "+"性别:"+this.gender+" "+"年龄:"+this.age); } }; person.say(); </script>
1:javascript对JSON的支持
下面给一个javascript创建对象的demo
在服务器端Servlet
String msg ="{name : '夜半风雨',gender : '男',age : 22,schools : ['小学','中学','大学'],parents : [{name : 'father',age : 50,address : '广州' } , {name : 'mother', age : 45,address : '广州'} ],say : function() {document.writeln('姓名:'+this.name+' <br/>'+'性别:'+this.gender+' <br/>'+'年龄:'+this.age+' <br/>');} };"; request.setAttribute("msg", msg); request.getRequestDispatcher("index.jsp").forward(request, response);
浏览器端Jsp页面
<script type="text/javascript"> var msg = ${requestScope.msg}; //创建对象 var person = eval(msg); person.say(); </script>
最后的效果图为;
姓名:夜半风雨 性别:男 年龄:22
2:java对JSON的支持
如何在服务器端生成符合JSON规范的字符串?
- 手动拼写
- 使用json-lib集成包
json-lib包用于将java中entity,map,collection,数组和XML转换成JSON格式
这里所有用到的包在我前面的文章中已经介绍过了,现在就以entity来简单说明一下json-lib的用法
先建立2个实体类
Student
public class Student { private String name; private int age; public Student(String name, int age) { super(); this.name = name; this.age = age; } ...public Getter and Setter... }
Teacher
public class Teacher { private String name; private Set<Student> students = new HashSet<Student>(); Getters and Setters... }
测试类TestJavaBean
public static void main(String[] args) { Student stu = new Student("夜半风雨", 22); JSONObject jsonObject = JSONObject.fromObject(stu); System.out.println(jsonObject.toString()); Teacher teacher = new Teacher(); teacher.setName("李刚"); teacher.getStudents().add(new Student("张三", 21)); teacher.getStudents().add(new Student("李四", 21)); teacher.getStudents().add(new Student("王五", 21)); JSONObject jsonObject2 = JSONObject.fromObject(teacher); System.out.println(jsonObject2.toString()); }
结果:
{"name":"夜半风雨","age":22} {"students":[{"age":21,"name":"李四"},{"age":21,"name":"张三"},{"age":21,"name":"王五"}],"name":"李刚"}