2、json教程

  1. JSON(JavaScript)对象表示法是一种轻量级的基于文本的开放标准, 被设计用于可读的数据交换
  2. 约定使用JSON的程序包括
    1. C
    2. C++
    3. Java
    4. Python
    5. Perl
   


  1. 总结
    1. JSON是JavaScript Object Notation的缩写
    2. 被设计用于可读的数据交换
    3. 是从JavaScript脚本语言中演变而来
    4. 文件扩展名是.json
    5. JSON的网络媒体类型是application/json
    6. 统一标示符类型是public.json
  2. JSON的使用范围
    1. 用于编写基于JavaScript应用程序,包括浏览器扩展和网站
    2. JSON格式可以用于通过网络连接序列化和传输结构化数据
    3. 主要用于在服务器和WEB应用程序之间传递数据
    4. WEB服务和APIs可以使用JSON格式提供公用数据
    5. 可以用于现代编程语言当中
  3. JSON的特点
    1. 容易阅读和编写
    2. 是一种轻量级的基于文本的交换格式
    3. 语言无关
  4. 例子:鉴于书籍数据有语言和版权的信息,下面的例子展示了使用JSON存储书籍的信息
    1. {
      "book": [
      {
      "id":"01",
      "language": "Java",
      "edition": "third",
      "author": "Herbert Schildt"
      },
      {
      "id":"07",
      "language": "C++",
      "edition": "second"
      "author": "E.Balagurusamy"
      }]
      }
  5. JSON语法
    1. JSON基本语法可以视为JavaScript语法的子集,主要包括:
      1. 数据使用名/值对表示
      2. 使用大括号保存对象,每个名称后面跟着一个“:”(冒号),名/值对使用“,”(逗号)分割
      3. 使用方括号保存数组,数组值使用逗号分割
    2. 下面是一个简单的示例
      1. {
        "book": [
        {
        "id":"01",
        "language": "Java",
        "edition": "third",
        "author": "Herbert Schildt"
        },
        {
        "id":"07",
        "language": "C++",
        "edition": "second"
        "author": "E.Balagurusamy"
        }]
        }
    3. JSON支持一下两种数据结构
      1. 名/值对集合:这一数据结构由不同的编程语言支持
      2. 有序的值列表:包括数组,列表,向量或者序列等等。
  6. JSON格式支持一下数据类型
    1. 数字型
      1. JavaScript中的双精度浮点型格式,取决于实现
      2. 不能使用八进制和十六进制
      3. 在数字中不能使用Nan和Infinity
      4. 下面展示了数字类型
        1.  语法
          1. var json-object-name = { string : number_value, .......}
        2. 示例
          1. 下面展示了一些数字类型,其值不应该使用引号包裹 
            1. var obj={marks:97}
    2. 字符串类型
      1. 零个或者是多个双引号包裹的Unicode字符以及反斜杠转义序列
      2. 字符就是只有一个字符的字符串,长度为1
      3. 下面展示了字符串类型
        1. 语法
          1.   var json-object-name = { string : "string value", .......}
        2. 示例
          1. 下面程序展示了一些基本的字符串数据类型
            1. var obj = {name: 'Amit'}
    3. 布尔类型
      1. 包含有true和false两个值
      2. 语法
        1. var json-object-name = { string : true/false, .......}
      3. 示例
        1. var obj = {name: 'Amit', marks: 97, distinction: true}
    4. 数组
      1. 它是一个有序的值集合
      2. 使用方括号闭合,这意味着数组以【】结尾和闭合
      3. 值使用,(逗号)分割
      4. 数组索引可以从0或者1开始
      5. 当键名是连续的整数的时候,应该使用数组
      6. 语法
        1. [ value, .......]
      7. 示例
        1. 下面程序展示了一个包含有一个或者是多个对象的数组
        2. {
          "books": [
          { "language":"Java" , "edition":"second" },
          { "language":"C++" , "lastName":"fifth" },
          { "language":"C" , "lastName":"third" }
          ]
          }
    5. 对象
      1. 它是一个无序的名/值对集合
      2. 对象使用大括号闭合,以’{‘ ’}‘开始和结尾
      3. 每个名称后面都跟随一个:(冒号),以名/值对使用,,(逗号分割)
      4. 键名必须是字符串 ,并且不能同名,
      5. 当键名是任意字符串时,应该使用对象
      6. 语法
        1. { string : value, .......}
      7. 示例
        1. 下面的例子展示了对象
        2. {
          "id": "011A",
          "language": "JAVA",
          "price": 500,
          }
    6. 空格
      1. 可以在任意的一对符号之间插入,可以添加用来让代码更可读,
      2. 下面的例子展示了如何使用空格和不使用空格
      3. 语法
        1. {string:" ",....}
      4. 示例
        1. var i= " sachin";
          var j = " saurav"
    7. null
      1. 意味着空类型
      2. 语法
        1. null
      3. 示例
        1. var i = null;
          if(i==1) {
          document.write("<h1>value is 1</h1>");
          } else {
          document.write("<h1>value is null</h1>");
          }
    8. JSON值
      1. 包括
        1. 数字(整型和浮点型)
        2. 字符串
        3. 布尔值
        4. 数组
        5. 对象
        6. null
      2. 语法
        1. String | Number | Object | Array | TRUE | FALSE | NULL
      3. 示例
        1. var i =1;
          var j = "sachin";
          var k = null;
  7. JSON对象
    1. 创建简单的对象
      1. JSON对象可以使用JavaScript创建,我们来看看JavaScript创建JSON对象的格式,
      2. 创建一个空对象
        1. var JSONobj={}
      3. 创建一个新对象
        1. var JSONObj = new Object();
    2. 创建一个bookname属性值为字符串,price属性值为数字的对象,可以通过使用“.”运算符来访问属性
      1. var JSONObj = { "bookname ":"VB BLACK BOOK", "price":500 };
    3. 例子
      1. 在JavaScript中使用JSON创建对象,可以将下面的代码保存为json_object.html
      2. <html>
        <head>
        <title>Creating Object JSON with JavaScript</title>
            <script language="javascript" >
                var JSONObj = { "name" : "tutorialspoint.com", "year" : 2005 };
                document.write("<h1>JSON with JavaScript example</h1>");
                document.write("<br>");
                document.write("<h3>Website Name="+JSONObj.name+"</h3>");
                document.write("<h3>Year="+JSONObj.year+"</h3>");
            </script>
        </head>
        <body>
        </body>
        </html>
      3. 现在尝试使用IE或者任何其他启用了JavaScript的浏览器打开页面,这会生成如下所示的结果
    4.  创建数组对象
      1. 下面程序展示了在JavaScript中使用JSON创建数组对象,可以将下面的代码保存为json_array_object.html
      2. <html>
        <head>
        <title>Creation of array object in javascript using JSON</title>
        <script language="javascript" >
        document.writeln("<h2>JSON array object</h2>");
        var books = {
        "Pascal" : [
        { "Name" : "Pascal Made Simple", "price" : 700 },
        { "Name" : "Guide to Pascal", "price" : 400 }
        ],
        "Scala" : [
        { "Name" : "Scala for the Impatient", "price" : 1000 },
        { "Name" : "Scala in Depth", "price" : 1300 }
        ]
        }
        var i = 0
        document.writeln("<table border='2'><tr>");
        for(i=0;i<books.Pascal.length;i++)
        {
        document.writeln("<td>");
        document.writeln("<table border='1' width=100 >");
        document.writeln("<tr><td><b>Name</b></td><td width=50>"
        + books.Pascal[i].Name+"</td></tr>");
        document.writeln("<tr><td><b>Price</b></td><td width=50>"
        第 1 章 JSON 基础 | 14+ books.Pascal[i].price +"</td></tr>");
        document.writeln("</table>");
        document.writeln("</td>");
        }
        for(i=0;i<books.Scala.length;i++)
        {
        document.writeln("<td>");
        document.writeln("<table border='1' width=100 >");
        document.writeln("<tr><td><b>Name</b></td><td width=50>"
        + books.Scala[i].Name+"</td></tr>");
        document.writeln("<tr><td><b>Price</b></td><td width=50>"
        + books.Scala[i].price+"</td></tr>");
        document.writeln("</table>");
        document.writeln("</td>");
        }
        document.writeln("</tr></table>");
        </script>
        </head>
        <body>
        </body>
        </html>
      3. 使用IE或者其他的启用了JavaScript的浏览器打开这个页面,将会生成下面的结果
  8.  JSON模式
    1. JSON模式是一种基于JSON定义的JSON数据结构的规范,
    2. JSON模式如下
      1. 描述现有的数据格式,
      2. 干净的人类和机器可读的文档
      3. 完整的结构验证,有利于自动化测试
      4. 完整的结构验证,可用于测试客户端提交的数据
    3. JSON模式验证库
      1. 目前有好几个验证器可用于不同的编程语言,但是目前最完整和兼容JSON模式的验证器是JSV
      2.  
    4. JSON模式示例
      1. 下面是一个基本的JSON模式,其中涵盖了一个经典的产品目录说明
        1. {
          "$schema": "http://json-schema.org/draft-04/schema#",
          "title": "Product",
          "description": "A product from Acme's catalog",
          "type": "object",
          "properties": {
          "id": {
          "description": "The unique identifier for a product",
          "type": "integer"
          },
          "name": {
          "description": "Name of the product",
          "type": "string"
          },
          "price": {
          "type": "number",
          "minimum": 0,
          "exclusiveMinimum": true
          }
          },
          "required": ["id", "name", "price"]
          }
      2. 看一下可以用于这一模式中的各种的关键字
        1. 可以在http://json-schema.org 上检索出可用以定义JSON模式的完整关键字列表,
        2. 上面的模式可以用于测试下面代码的有效性

          1. [
            {
            "id": 2,
            "name": "An ice sculpture",
            "price": 12.50,
            },
            {
            "id": 3,
            "name": "A blue mouse",
            "price": 25.50,
            }
            ]
          2.  




  1. JSON与XML的对比
    1. JSON都是人类可读的格式并且与语言无关
    2. 现实环境中,他们都支持创建,读取和解码
    3. 可以基于以下因素来比较JSON和XML   
      1. 冗余度
        1. XML比JSON冗余,因此,我们使用JSON将会编写的更快
      2. 数组用法
        1. XML被用来描述结构化数据,不包含数组,而JSON包含数组
      3. 解析
        1. 可以使用JavaScript的eval方法解析json,当针对JSON应用这个方法的时候,eval方法返回描述的对象
      4. 示例
        1. 下面展示的是一个JSON和XML的示例
          1. JSON
          2. {
            "company": Volkswagen,
            "name": "Vento",
            "price": 800000
            }
          3. XML
            1. <car>
                  <company>Volkswagen</company>
                  <name>Vento</name>
                  <price>800000</price>
              </car>







posted on 2017-09-11 14:09  yangzsnews  阅读(151)  评论(0编辑  收藏  举报

导航