json

  1. json是什么 * 它是js提供的一种数据交换格式!(在js里面定义直接就是js对象,但以字符串的方式从服务器响应到js中,需要调用eval(“(”+str+“)”)方法变成对象。再进行相关操作

  2. json的语法 * {}:是对象!
    <> 属性名必须使用双引号括起来!单引不行!!!
    <> 属性值:

    • null
    • 数值
    • 字符串
    • 数组:使用[]括起来
    • boolean值:true和false
  3. 应用json * var person = {“name”:”zhangSan”, “age”:18, “sex”:”male”};

  4. json与xml比较

    • 可读性:XML胜出
    • 解析难度:JSON本身就是JS对象(主场作战),所以简单很多
    • 流行度:XML已经流行好多年,但在AJAX领域,JSON更受欢迎。

json-lib

  1. 是什么? * 它可以把javabean转换成json串

  2. jar包 * 略

  3. 核心类 * JSONObject –> Map
    <> toString();把JSONObject转换为json字符串
    <> JSONObject map = JSONObject.fromObject(person):把对象转换成JSONObject对象 *JSONArray –> List
    <> toString()
    <> JSONArray jsonArray = JSONObject.fromObject(list):把list转换成JSONArray对象

<script type="text/javascript">
function createXMLHttpRequest(){
    try {
        return new XMLHttpRequest();
    } catch (e) {
        try {
            return new ActvieXObject("Msxml12.XMLHTTP");
        } catch (e) {
            try {
                return new ActvieXObject("Miscrosoft.XMLHTTP");
            } catch (e) {
                alert("请更换浏览器");
                throw e;
            }
        }
    }
}

window.onload=function(){
    var btn=document.getElementById("btn");
    btn.onclick=function(){
        var xmlHttp=createXMLHttpRequest();
        xmlHttp.open("GET","<c:url value='/AServlet'/>",true);
        xmlHttp.send(null);
        xmlHttp.onreadystatechange=function(){
            if(xmlHttp.readyState==4&&xmlHttp.status==200){
                var str=xmlHttp.responseText;
                var person=eval("("+str+")");//执行方法,将字符串变成对象
                var h3=document.getElementById("h3");
                h3.innerHTML=person.name+" "+person.age+" "+person.sex;
            }
        };
    };
};
</script>

  </head>

  <body>
  <%--点击按钮后把服务器响应的内容显示到h3中 --%>
   <button id="btn">点击这里</button>
   <h1>JSON之Hello World</h1>
   <h3 id="h3"></h3>
  </body>
</html>
public class AServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        /**
         *向客户端发送字符串
         */
        String str="{\"name\":\"zhangSan\",\"age\":20,\"sex\":\"man\"}";
        response.getWriter().println(str);
        System.out.println(str);
    }


}

可以使用json-lib将javaBean转化成json格式字符串
示例:

public class Person {
    private String name;
    private int age;
    private String sex;
    public Person() {
        super();
    }
    public Person(String name, int age, String sex) {
        super();
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
    public String toString() {
        return "Person [name=" + name + ", age=" + age + ", sex=" + sex + "]";
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
}
public class Demo1 {

//  @Test
    public void fun1(){
        JSONObject map=new JSONObject();
        map.put("name", "zhangSan");
        map.put("age", 23);
        map.put("sex", "man");

        String s=map.toString();
        System.out.print(s);
    }

//  @Test
    public void fun2(){
        Person p1=new Person("sunchao", 21, "man");
        JSONObject map=JSONObject.fromObject(p1);
        String s=map.toString();
        System.out.print(s);
    }
    @Test
    public void fun3(){
        Person p1=new Person("sunchao", 21, "man");
        Person p2=new Person("sunchao", 21, "man");
        JSONArray list=new JSONArray();
        list.add(p1);
        list.add(p2);
        String s=list.toString();
        System.out.println(s);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值