json入门

简介:从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":"李刚"}

posted on 2012-05-20 22:53  疯狂的石头陈  阅读(220)  评论(0编辑  收藏  举报

导航