• JSON学习笔记


    时间:2017-1-1 22:25

    ——什么是JSON

        JSON(JavaScript Object Notation)是一中轻量级的数据交换格式。
        JSON是用字符串表示JavaScript对象,例如可以在Servlet中发送一个JSON格式的字符串给客户端,JavaScript可以执行这个字符串,得到一个JavaScript对象。

        XML也可以用来作为数据交换格式。

    ——JSON对象语法

    JSON语法:
        1)数据在键值对中
        2)数据由逗号分隔
        3)花括号保存对象
        4)方括号保存数组

    JSON值:
        1)数字(整数或浮点数)
        2)字符串(在双引号中)
        3)逻辑值(true或false)
        4)数组(在方括号中)
        5)对象(在花括号中)
        6)null

    应用JSON:
        var person = {"name" : "zhangsan", "age" : "20", "sex" : "male"};
        alert(person.name + ", " + person.age + ", " + person.sex);

        注意:key也要在双引号中。

    ——JSON与XML比较

    1、可读性:XML胜出
    2、解码难度:JSON本身就是JS对象(亲儿子),所以简单很多
    3、流行度:XML已经流行好多年,但在Ajax领域,JSON更受欢迎

    ——把Java对象转换成JSON对象

    Apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串,也可以把JavaBean转换成字符串。

    1、json-lib核心jar包
        *   json-lib.jar

    2、json-lib依赖jar包
        *   commons-lang.jar
        *   commons-beanutils.jar
        *   commons-logging.jar
        *   commons-collections.jar
        *   ezmorph.jar

    3、json-lib中的核心类
        *   JSONObject
            >   本身是一个Map
            >   toString()方法可以得到一个JSON字符串
            >   JSONObject map = JSONObject.fromObject(person);
                把对象转换成JSONObject对象

        *   JSONArray
            >   本身是一个List
            >   toString()方法可以得到一个JSON字符串
            >   JSONArray list = JSONArray.fromObject(list)
                把List转换成JSONArray对象

    =============================================================================

    代码:

    import java.util.ArrayList;
    import java.util.List;
     
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
     
    import org.junit.Test;
     
    /**
     * 演示json-lib小工具
     * 
     * @author WYC
     * 
     */
    public class Demo {
        /*
         * 当做Map来用
         */
        @Test
        public void fun1() {
            JSONObject map = new JSONObject();
            map.put("name", "zhangsan");
            map.put("age", 20);
     
            System.out.println(map.toString());
        }

    输出:
    {"name":"zhangsan","age":20}
     
    ----------------------------------------------------------------------------------------------------------------------------
        /*
         * 当已经有了一个Person对象时,可以把Person转换成JSONObject对象来用
         */
        @Test
        public void fun2() {
            Person p = new Person("zhangsan", 21);
     
            /*
             * 把对象转换成JSONObject类型
             */
            JSONObject map = JSONObject.fromObject(p);
            System.out.println(map);
        }

    输出:
    {"name":"zhangsan","age":21}
     
    ----------------------------------------------------------------------------------------------------------------------------
     
        /*
         * JSONArray
         */
        @Test
        public void fun3() {
            Person p1 = new Person("zhangsan", 22);
            Person p2 = new Person("lisi", 23);
     
            JSONArray list = new JSONArray();
            list.add(p1);
            list.add(p2);
            System.out.println(list);
        }

    输出:
    [{"name":"zhangsan","age":22},{"name":"lisi","age":23}]
     
    ----------------------------------------------------------------------------------------------------------------------------
     
        /*
         * 原来就有一个List,需要把List转换成JSONArray
         */
        @Test
        public void fun4() {
            Person p1 = new Person("zhangsan", 22);
            Person p2 = new Person("lisi", 23);
     
            List<Person> list = new ArrayList<Person>();
            list.add(p1);
            list.add(p2);
            System.out.println(JSONArray.fromObject(list));
        }
    }

    输出:
    [{"name":"zhangsan","age":22},{"name":"lisi","age":23}] 
  • 相关阅读:
    sass学习(1)——了解sass
    ES6学习(2)——arrows箭头函数
    ES6学习(1)——如何通过babel将ES6转化成ES5
    过年后的小计划
    JavaScript,通过分析Array.prototype.push重新认识Array
    JavaScript如何判断参数为浮点型
    gulp之静态资源防缓存处理
    递归算法,JavaScript实现
    有趣的Node爬虫,数据导出成Excel
    Memcached、Redis、RabbitMQ
  • 原文地址:https://www.cnblogs.com/wwwwyc/p/6375373.html
Copyright © 2020-2023  润新知