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,
            }
            ]




  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>



2、json教程的更多相关文章

  1. JSON 教程学习进度备忘

    书签:跳过:另外跳过的内容有待跟进 __________________ 学习资源:W3School. _________________ 跳过的内容: 1. ______________ 知识点:1 ...

  2. 最近想学Json,请问大家有没有什么好的Json教程介绍一下?

    最近想学json,请问大家有没有什么好的Json教程介绍一下? 最近学完java的框架了,想了解一下json,可是找不到相关视频,请大家有这方面的Json教程好资料就介绍下啦,最后有网址链接啦. {} ...

  3. JSON 教程首页

    JSON教程 JSON或JavaScript对象表示法是一个轻量级的基于文本的开放式标准,旨在为人类可读的数据交换. JSON格式最初是由Douglas Crockford规定,在RFC4627中描述 ...

  4. json教程系列(1)-使用json所要用到的jar包下载

    json是个非常重要的数据结构,在web开发中应用十分广泛.我觉得每个人都应该好好的去研究一下json的底层实现,基于这样的认识,金丝燕网推出了一个关于json的系列教程,分析一下json的相关内容, ...

  5. IBM开发者 JSON 教程

    在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.掌握 Ajax 的这一期讨论另一种有用的数据格式 JavaScript Object Notation(JSON),以及如何 ...

  6. 一些JSON 教程

    JSON  以下内容来自W3school. JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. ...

  7. Web开发——JavaScript基础(JSON教程)

    参考: JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更 ...

  8. JSON教程基础

    一.基础简介 二.JSON 语法 三.JSON 使用 一.基础简介 1.JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本 ...

  9. 一些非常实用的JSON 教程

    以下内容来自W3school. JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 ...

  10. JSON教程

    一.什么是JSON 1.JSON指的是JavaScript对象表示法(JavaScript Object Notation). 2.JSON是轻量级的文本数据交换格式,比XML更小.更快.更易解析. ...

随机推荐

  1. Freezable 对象概述 | Microsoft Docs

    原文:Freezable 对象概述 | Microsoft Docs Freezable 对象概述Freezable Objects Overview 2017/03/30 本文内容 什么是可冻结的? ...

  2. KindEditor 编辑器前台得使用规范

    官方网址:http://www.kindsoft.net/下载网址:http://www.kindsoft.net/down.php 引入得脚本: <link href="~/Cont ...

  3. 【网站】网站不能在QQ,微信中访问,申诉办法

    使用这个网站申诉即可 https://appeal.anquan.org/

  4. MyEclipse设置不编译js部分

    https://jingyan.baidu.com/album/ca41422fe094251eae99ede7.html?picindex=1 步骤: 1)选中当前工程,右键单击properties ...

  5. mac环境下,pycharm2018 配置 anaconda。

    2018版的pycharm与之前的版本在配置anaconda上流程略有不同.直接上图 1.新建工程,展开会看到系统默认的编译环境名叫virtualenv,是基于python3.5的环境(如果没有安装过 ...

  6. elementui el-table根据分页显示表格序号

    每页显示的序号都是一样的: <el-table :data="tableData" highlight-current-row @current-change="h ...

  7. DSDT/SSDT

    版权说明:本文章参考tonymacx86的Patching LAPTOP DSDT/SSDTs这篇文章 如果需要转载,请注明原文地址:http://blog.csdn.net/wr132/articl ...

  8. Windows下编译Google.Protobuf在Qt(C++)中使用与Unity3d(C#)交互

    1.首先从Github-Protobuf下载代码,本文下载的版本号是3.1.0. 2.仔细查看各个README,有相关的资源下载和编译说明. 3.在一个方便的地方创建一个Install类型的文件夹,放 ...

  9. Django框架介绍(二)

    1.MVC框架和MTV框架 MVC全名model view controller,是软件工程中的一种软件架构模式,把软件分为三个基本部分:模型(model).视图(view)和控制器(controll ...

  10. C++-POJ3274-Gold Balanced Lineup[hash]

    不是很懂? 胡乱hash #include <set> #include <map> #include <cmath> #include <queue> ...