zoukankan      html  css  js  c++  java
  • JSON基础

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

    • 数据在名称/值对中        例 "name":"zhangsan"
    • 数据由逗号分隔            例  "name":"zhangsan", "age":18
    • 大括号保存对象            例  "school":{ "name":"Test School" ,"address":"Street A Road B"}
    • 中括号保存数组            例  "schools":[{ "name":"Test SchoolA" ,"address":"Street A Road B"},{ "name":"Test SchoolB" ,"address":"Street C Road D"}]

    JSON 值可以是

    • 数字(整数或浮点数)
    • 字符串(在双引号中)
    • 逻辑值(true 或 false)
    • 数组(在中括号中)
    • 对象(在大括号中)
    • null

    对象

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

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

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

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

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

    1、访问对象的值

    (1)使用点号(.)来访问对象的值

     例:var test, x;                //定义对象test、x

      test= { "name":"water","price":"2"};      //给test赋值

      x = test.name;           //通过.调用name属性,可以通过document.getElementById("xxxxxxx").innerHTML = x;打印x值

    (2)使用中括号([])来访问对象的值

     例:var testx;               //定义对象test、x

      test{ "name":"water","price":"2"};      //给test赋值

      x = test[name];           //通过[]调用name属性,可以通过document.getElementById("xxxxxxx").innerHTML = x;打印x值

    2、循环对象的值

    (1)使用 for-in 来循环对象的属性

      var test= { "name":"water","price":"2" };                 //定义对象test并给赋值

      for (x in test) {                                                        //使用for  in循环

        document.getElementById("XXXXX").innerHTML += x + "<br>";          //打印对象属性值

      }

    (2)在 for-in 循环对象的属性时,使用中括号([])来访问属性的值

      var test{ "name":"water","price":"2" };                 //定义对象test并给赋值

      for (x in test) {                                                        //使用for  in循环

        document.getElementById("demo").innerHTML += test[x] + "<br>";               //打印对象属性值

      }

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

      school= {

        "name":"TestA",

        "address":"Street A Road B",

        "classes": {

          "class1":"room1",

          "class2":"room2",

          "class3":"room3"

        }

      }

    使用点号(.)或(([])来修改 JSON 对象的值

       school.classes.class1 = "room4";

    使用 delete 关键字来删除 JSON 对象的属性

      delete school.classes["class2"]

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

      x = school.classes.class1;    // 或者       x = school.classes["class1"];

    使用for遍历时,只能通过 school[x] 来获取相应属性的值,而不能使用 school.x

    数组

    JSON 数组在中括号中书写。

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

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

    1、对象属性的值可以是一个数组,可以使用索引值来访问数组

      var school, x;

      school= {

      "name":"班级",
      "num":3,
      "classes":[ "class1", "class2", "class3" ]
      }
      x = school.classes[0];        //使用索引值来访问数组
      document.getElementById("XXXXX").innerHTML = x;      //打印X

     2、使用 for-in 来访问数组 

      var school, i, x = "";
      school= {

      "name":"班级",
      "num":3,
      "classes":[ "class1", "class2", "class3" ]
      };

      for (i in school.classes) {
      x += school.classess[i] + "<br>";
      }

      document.getElementById("demo").innerHTML = x;

     3、JSON 对象中数组可以包含另外一个数组,或者另外一个 JSON 对象,可以使用 for-in 来循环访问每个数组

      var school, i, j, x = "";

      school = {
      "name":"班级",
      "num":3,
      "classes": [
      { "name":"class1", "info":[ "学生A", "学生B", "学生C" ] },
      { "name":"class2", "info":[ "学生D", "学生E", "学生F" ] },
      { "name":"class3", "info":[ "学生G", "学生H", "学生I" ] }
      ]
      }

      for (i in school.classes) {
        x += "<h1>" + school.classes[i].name + "</h1>";
          for (j in school.classes[i].info) {
            x += school.classes[i].info[j] + "<br>";
          }  
      }

      document.getElementById("XXXXX").innerHTML = x;

    使用索引值来修改数组值

      school.classes[0] = "class4";

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

       delete school.classes[1];

    读取值

      document.write(school.classes[1].name);  

    Mei
  • 相关阅读:
    Lodop简短问答客户反馈篇 及排查步骤 及注册相关
    Win10图片打不开文件系统错误2147416359解决方法
    Lodop中特殊符号¥打印设计和预览不同
    LODOP安装参数 及静默安装
    LODOP打印安装到win的特殊字体
    Lodop打印设计(PRINT_DESIGN)介绍
    Lodop打印设计里的 打印项对齐
    System.out.println与System.err.println的区别(输出顺序!!!)
    享元模式
    Java中关于HashMap的元素遍历的顺序问题
  • 原文地址:https://www.cnblogs.com/xiaomei1990/p/12843698.html
Copyright © 2011-2022 走看看