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);  

 

posted @ 2020-05-08 16:53  Hu·Mei  阅读(272)  评论(0编辑  收藏  举报