• 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) }

      

     

  • 相关阅读:
    类型"ImportMeta"上不存在属性"env"(Property 'env' does not exist on type 'ImportMeta')
    微信小程序开发常见问题
    js构建沙箱环境sandbox
    js 判断两个对象是否相同
    js判断类型方法
    初学knockoutjs记录4——Computed observables依赖监控(1 Using computed observables使用计算监控属性)
    初学knockoutjs记录3——Observables监控属性(2 Observable Arrays 监控数组)
    初学knockoutjs记录2——Observables监控属性(1 创建带有监控属性的view model)
    初学knockoutjs记录1——入门介绍及下载安装
    C、C++、JAVA编译器是如何处理未经初始化的变量的。
  • 原文地址:https://www.cnblogs.com/wanqingcui/p/9554082.html
Copyright © 2020-2023  润新知