zoukankan      html  css  js  c++  java
  • JSON教程

    一、什么是JSON

    1、JSON指的是JavaScript对象表示法(JavaScript Object Notation)。

    2、JSON是轻量级的文本数据交换格式,比XML更小、更快、更易解析。

    3、JSON独立于语言。

    4、JSON具有自我描述性、更易理解。

    注意:JSON使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语言。目前非常多的动态编程语言(PHP、.NET)都支持JSON。

    二、JSON和XML比较

    1、与XML相同之处

    1)JSON是纯文本。

    2)JSON具有“自我描述性”(人类可读)。

    3)JSON具有层级结构(值中存在值)。

    4)JSON可通过JavaScript进行解析。

    5)JSON数据可使用AJAX进行传输。

    2、与XML不同之处

    1)没有结束标签。

    2)比XML更短。

    3)比XML读写的速度更快。

    4)能够使用内建的JavaScript eval()方法进行解析。

    5)可以使用数组。

    6)不使用保留字。

    3、为什么使用JSON

    对于AJAX应用程序来说,JSON比XML更快更易使用:

    使用XML:

    读取XML文档。

    使用XML DOM来循环遍历文档。

    读取值并存储在变量中。

    使用JSON

    读取JSON字符串。

    用eval()处理JSON字符串。

    三、JSON语法

    JSON语法是JavaScript语法的子集。

    1、语法规则

    JSON语法是JavaScript对象表示语法的子集。

    1)数据在名称/值对中。

    2)数据由逗号分隔。

    3)大括号保存对象。

    4)中括号保存数组。

    2、JSON名称/值对

    JSON数据的书写格式是:名称/值对。

    名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

    "name":"Tom"
    

    3、JSON值

    JSON值可以是:

    1)数字(整数或浮点数)。

    2)字符串(在双引号中)。

    3)逻辑值(true或false)。

    4)数组(在中括号中)。

    5)对象(在大括号中)。

    6)null。

    4、JSON数字

    JSON数字可以是整型或者浮点型:

    {"age":30}
    

    5、JSON对象

    JSON对象在大括号({})中书写:

    对象可以包含多个名称/值对:

    {"name":"张三","age":24}
    

    6、JSON数组

    JSON数组在中括号中书写:

    数组可以包含多个对象:

    {
      "student":[
      {"name":"张三","age":24},
      {"name":"李四","age":25}
      ]
    }
    

    在上面的例子中,对象"student"是包含三个对象的数组。每个对象代表一条关于某个学生(name,age)的记录。

    7、JSON布尔值

    JSON布尔值可以是true或者false:

    {"flag":true}
    

    8、JSON null值

    JSON可以设置null值:

    {"student":null}
    

    9、JSON使用JavaScript语法

    因为JSON使用JavaScript语法,所以无需额外的软件就能处理JavaScript中的JSON。

    通过JavaScript,你可以创建一个对象数组,并像这样进行赋值:

    var student=[
      {"name":"张三","age":24},
      {"name":"李四","age":25}
      ];
    

    可以像这样访问JavaScript对象数组中的第一项(索引从0开始)

    student[0].name;
    

    返回的内容是:

    张三
    

    可以像这样修改数据:

    student[0].name="tom";
    

    10、JSON文件

    1)JSON文件的文件类型是".json"。

    2)JSON文本的MIME类型是"application/json"。

    四、JSON对象

    1、对象语法

    {"name":"张三","age":25}
    

    JSON对象使用在大括号({})中书写。

    对象可以包含多个key/value(键/值)对。

    key必须是字符串,value可以是合法的JSON数据类型(字符串、数字、对象、数组、布尔值或null)。

    key和value中使用冒号(:)分割。

    每个key/value对使用逗号(,)分割。

    2、访问对象

    你可以使用点(.)来访问对象的值。

    var  myObj,x;
    myObj={"name":"张三","age":24};
    x=myObj.name;
    

    上面的例子输出值:张三。

    你也可以使用中括号([])来访问对象的值。

    var  myObj,x;
    myObj={"name":"张三","age":24};
    x=myObj["name"];
    

    上面的例子同样输出值:张三。

    3、循环对象

    你可以使用for-in来循环对象的属性,使用中括号([])来访问属性的值:

    var myObj={"name":"张三","age":24};
    for(x in myObj){
         document.getElementById("demo").innerHTML += myObj[x]+"<br>";
    }
    

    4、嵌套JSON对象

    JSON对象中可以包含另外一个JSON对象:

    student={
          "name":"张三",
          "age":24,
          "score":{
             "C#高级编程":94,
             "SQL Server":83,
             "Python":75
           }
    }
    

    你可以使用点号(.)或者中括号([])来访问嵌套的JSON对象。

    例如:

    var x=student.score.C#高级编程;
    // 或者
    var x=student.score["C#高级编程"];
    

    5、修改JSON对象的值

    你可以使用点号(.)来修改JSON对象的值:

    student.score.C#高级编程=90;
    

    你也可以使用中括号([])来修改JSON对象的值:

    student.score["C#高级编程"]=90;
    

    6、删除JSON对象的属性

    我们可以使用delete关键字来删除JSON对象的属性:

    delete student.score.C#高级编程;
    

    也可以使用中括号([])来删除JSON对象的属性:

    delete student.score["C#高级编程"];
    

    五、JSON数组

    1、数组作为JSON对象

    ["C#","Java","Python"]

    JSON数组在中括号中书写。

    JSON中数组值必须是合法的JSON数据类型(数字、字符串、对象、数组、布尔值或null)。

    JavaScript中,数组值可以是以上的JSON数据类型,也可以是JavaScript的表达式,包括函数、日期、及undefined。

    2、JSON对象中的数组

    对象属性的值可以是一个数组:

    var student={
       "name":"张三",
       "age":24,
       "subject":[".NET","java","python"]
    }
    

    可以使用索引值来访问数组:

    var x=student.subject[0];
    

    3、循环数组

    可以使用for-in来访问数组:

    for(i  in student.subject)  {
         x += student.subject[i]+"<br>";
    }
    

    也可以使用for循环

    for(int i=0;i<student.subject.length;i++) {
       x+=student.subject[i]+"<br>";
    }
    

    4、嵌套JSON对象中的数组

    JSON对象中数组可以包含另外一个数组,或者另外一个JSON对象:

    student={
       "name":"张三",
       "age":24,
       "score":[
             {".NET":91},
             {"java":85},
             {"python":79}
        ]
    }
    

    可以使用for-in来循环访问数组

    for(i in student.score) {
       x +="<h1>" +student.score[i]+"</h1>";
    }
    

    5、修改数组值

    可以使用索引值来修改数组值:

    student.score[1]=93;
    

    6、删除数组元素

    可以使用delete关键字来删除数组元素:

    delete  student.score[0];

     

      

  • 相关阅读:
    模拟赛总结
    2018.04.06学习总结
    2018.04.06学习总结
    Java实现 LeetCode 672 灯泡开关 Ⅱ(数学思路问题)
    Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
    Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
    Java实现 LeetCode 671 二叉树中第二小的节点(遍历树)
    Java实现 LeetCode 670 最大交换(暴力)
    Java实现 LeetCode 670 最大交换(暴力)
    Java实现 LeetCode 670 最大交换(暴力)
  • 原文地址:https://www.cnblogs.com/dotnet261010/p/8462675.html
Copyright © 2011-2022 走看看