• 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];

     

      

  • 相关阅读:
    2021秋9月14日
    向GitHub上传代码
    8.2.py 知识图谱
    7.2.py 树模型衍生变量
    3.3.py 迁移学习
    1.3.py CART回归树做组合规则特征
    2.7.py xgboost版评分映射
    特征重要性之shap value
    特征重要性之排列重要性Permutaion Importance
    Python 合并一个Excel文件中格式一样的sheet
  • 原文地址:https://www.cnblogs.com/dotnet261010/p/8462675.html
Copyright © 2020-2023  润新知