JSON的学习

JSON语法是javascript语法的子集

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

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 大括号保存对象
  • 中括号保存数组

JSON 名称/值对

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

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

"name" : "菜鸟教程"

JSON 值

JSON 值可以是:

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

JSON 数字

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

{ "age":30 }

JSON 对象

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

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

{ "name":"菜鸟教程" , "url":"www.runoob.com" }

JSON 数组

JSON 数组在中括号中书写:

数组可包含多个对象:

{
"sites": [
{ "name":"菜鸟教程" , "url":"www.runoob.com" }, 
{ "name":"google" , "url":"www.google.com" }, 
{ "name":"微博" , "url":"www.weibo.com" }
]
}

在上面的例子中,对象 "sites" 是包含三个对象的数组。每个对象代表一条关于某个网站(name、url)的记录。

JSON 布尔值

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

{"flag";true}

JSON  NULL值

{"age":null}

JSON 使用 JavaScript 语法

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

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

 

   var  sites=[
        {"name":"xiaoming","age":22,"number":222},
        {"name":"liming","age":23,"number":333}
    ]
可以像这样访问 JavaScript 对象数组中的第一项(索引从 0 开始): console.log(sites[0].name);
可以像这样修改数据:
sites[0].name="wanqngcui"; console.log( sites[0].name)

JSON 对象

对象语法

{ "name":"runoob", "alexa":10000, "site":null }

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

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

key必须是字符串,value可以是合法的JSON数据类型(字符串,数字,对象,布尔值,数组和null),key 和 value 中使用冒号(:)分割。每个 key/value 对使用逗号(,)分割。

访问对象值

(1)你可以通过(.)来访问对象的值:

 var myobj,x;
 myobj={"name":"aa","age":24};
 x=myobj.name;
 console.log(x);

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

 var myobj,x;
 myobj={"name":"aa","age":24};
 b=myobj["age"];
 console.log(b) 

循环对象

你可以使用 for-in 来循环对象的属性:

   var sites={
        "name":"xiaoming",
        "age":13,
        "number":33
    }
    // 可以使用for- in 来循环对象的属性
    for(x in sites){
    console.log(x);
    }
输出 name age number

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

 var sites={
        "name":"xiaoming",
        "age":13,
        "number":33
    }
    // 在for-in 循环对象的属性时,使用中括号([])来访问属性的值
    for(x in sites){
        console.log(sites[x])
    }
   输出:xiaoming 13 33

嵌套 JSON 对象

 JSON 对象中可以包含另外一个 JSON 对象:
 你可以使用点号(.)或者中括号([])来访问嵌套的 JSON 对象。
 
   var sites={
        "name":"xiaoming",
        "age":13,
        "number":33,
        "local":{
            "site1":"www.runoob.com",
            "site2":"m.runoob.com",
            "site3":"c.runoob.com"
        }

    }
    console.log(sites.local.site1);
    console.log(sites.local["site1"]);
输出:www.runoob.com
   www.runoob.com

修改值

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

    var sites={
        "name":"xiaoming",
        "age":13,
        "number":33,
        "local":{
            "site1":"www.runoob.com",
            "site2":"m.runoob.com",
            "site3":"c.runoob.com"
        }

    }
    sites.local.site2=22;
    sites.local["site1"]=33
    console.log(sites.local.site2);
    console.log(sites.local["site1"]);
输出:22 33

删除对象属性

我们可以使用 delete 关键字来删除 JSON 对象的属性:你可以使用中括号([])来删除 JSON 对象的属性:

(1)

 var myobj ,i ,x;
  myobj={
      "name":"runoob",
      "axexa":10000,
      "sites":{
          "site1":"www.baidu.com",
          "site2":"www.gogle.com",
          "site3":"www.chome.com",
      }
  }
  delete  myobj.sites.site1;
delete myobj.sites["site1"]; for(i in myobj.sites){ x=myobj.sites[i]; console.log(x) }

  

 

原文地址:https://www.cnblogs.com/wanqingcui/p/9554082.html