JSON专题-基础知识

来源:互联网 发布:淘宝网pu羽绒服 编辑:程序博客网 时间:2024/05/11 03:24

一、JSON理论

           Json的全称为 Java Script Object Notation(JavaScript对象表示方法),从名字就可以它的常用场景是在web项目中,是存储和交换文本信息的语法,和XML非常类似。由于其比XML更小、更快而且更容易解析,所以在一般情况下用JSON替代了XML。JSON虽然使用JavaScript语法描述数据对象,但是其仍然独立于平台和语言,JSON解析器和JSON库支持不同的语言编程,当前流行的动态编程语言(PHP /JSP /.NET)都支持JSON。
       
           JSON实例:
     {
      "taskID":12,            //数字
      "taskName":"TN-012",    //字符串
      "isFinish":true,        //true or false
      "taskItem":[
           {
             "itemName":"TN-012-001"
           }
,
           {
             "itemName":"TN-012-002"
           }

         ]
,                    //数组
         "taskSpendTime":{     
          "hours":13
         }
,                    //对象
        "others":null         //null
     }


二、JSON基本语法

          2.1 JSON值

             从上述的JSON实例中可以看出,JSON的值可以分为6种:
    • 数字 (整数和逻辑值)
    • 字符串 (在双引号中)
    • 逻辑值 (true or false)
    • 数组 (在方括号中)
    • 对象 (在花括号中)
    • null

          2.2 JSON对象

              JSON对象是包括在花括号中的,对象是以多个key/value形式构成的:
              {
        "name":"wangweiwei",
        "address":"Beijing"
      }
             
              这一点等价于JavaScript中的 name = "Wangweiwei"   address = "Beijing"。
         

           2.3 JSON数组

            JSON数组时包含在方括号中的,一个JSON数组可以包括多个JSON对象。

三、JSON在JavaScript中在应用


           在JavaScript中,常见的有三种:普通对象,JSON对象,JSON字符串。
         
            JSON字符串: var str = '{"task":"task1","taskNo":"001"}';        //注意有‘’,是字符串性质的

            JSON对象:     var obj = {"task":"task1","taskNo":"001"};         //符合JSON数据个数的JSON对象

            普通JS对象: function Task(String task,String taskNo){
                                         this.task = task;
                                         this.taskNo = taskNo;
                                }

                                var obj2 = new Task("task3","taskNo003");

        3.1 JSON字符串转换为JSON对象

             (1)  var obj = eval('('+str+')');
             (2)  var obj = str.parseJSON();
             (3)  var obj = JSON.parse(str);
       
             Note: 如果obj本来就是一个JSON的对象,那么经过eval经过多次转换之后仍然为JSON对象,但是使用parseJSON()函数转化之后就会有异常。

        3.2 JSON对象转换为JSON字符串

            (1) var str = obj.toJSONString();
            (2) var str = JSON.stringify(obj);
         
            普通对象转换成JSON字符串的方法相同。
  
             Note:在上述的几个方法中,eval函数是js自带的,其他的方法都来自于json.js包,在新版本的JSON API中,将全局函数JSON.parse()和JSON.stringify()都内嵌到JS的内建对象中了,分别为String.parseJSON() 和 Object.toJSONString(),如果找不到,则说明json包版本太低。

四、其他

          如果JSON字符串太多,防止出错,那么可以采用JSON校验工具进行检测。JSON校验网址:http://www.json.cn


0 0
原创粉丝点击