zoukankan      html  css  js  c++  java
  • json学习笔记(一)

    1、JSON简介:

    JSON: JavaScript Object Notation(JavaScript 对象表示法)

    JSON 是存储和交换文本信息的语法。类似 XML。

    JSON 比 XML 更小、更快,更易解析。

    JSON 实例

    {
    "sites": [
        { "name":"华中科技大学" , "url":"www.hust.edu.cn" }, 
        { "name":"google" , "url":"www.google.com" }, 
        { "name":"微博" , "url":"www.weibo.com" }
      ]
    }

    1.1 什么是 JSON ?

    • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
    • JSON 是轻量级的文本数据交换格式
    • JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
    • JSON 具有自我描述性,更易理解

    1.2 JSON - 转换为 JavaScript 对象

      JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。

      由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

    2、JSON 语法

      JSON 语法是 JavaScript 语法的子集。

    2.1 JSON 语法规则

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

    • 数据在名称/值对中

    • 数据由逗号分隔

    • 大括号保存对象

    • 中括号保存数组

    2.2 JSON 名称/值对 

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

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

    "name" : "华中科技大学"  等价于这条 JavaScript 语句:name = "菜鸟教程"

    2.3 JSON 值  

    JSON 值可以是:

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

    2.4 JSON 数字

      JSON 数字可以是整型或者浮点型:{ "age":30 }

    2.5 JSON 对象 

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

      对象可以包含多个名称/值对:{ "name":"华中科技大学" , "url":"www.hust.edu.cn" }

    2.6 JSON 数组

      JSON 数组在中括号中书写:

      数组可包含多个对象 

    {
    "sites": [
        { "name":"华中科技大学" , "url":"www.hust.edu.cn" }, 
        { "name":"google" , "url":"www.google.com" }, 
        { "name":"微博" , "url":"www.weibo.com" }
      ]
    }

    2.7 JSON 布尔值

      JSON 布尔值可以是 true 或者 false:{ "flag":true }

    2.8 JSON null

      JSON 可以设置 null 值:{ "root":null }

    2.9 JSON 使用 JavaScript 语法

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

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

    var sites = [
        { "name":"华中科技大学" , "url":"www.hust.edu.cn" }, 
        { "name":"google" , "url":"www.google.com" }, 
        { "name":"微博" , "url":"www.weibo.com" }
    ];

    JavaScript 对象数组中的第一项(索引从 0 开始):

    sites[0].name;   返回的内容是:华中科技大学

    可以像这样修改数据: sites[0].name="清华大学";

    2.10 JSON 文件

    • JSON 文件的文件类型是 ".json"
    • JSON 文本的 MIME 类型是 "application/json"

    JSON 对象

    语法实例:{ "name":"runoob", "alexa":10000, "site":null }

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

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

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

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

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

    3.1访问对象值

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

     1 <body>
     2 
     3   <p>你可以使用点号(.)来访问 JSON 对象的值:</p>
     4 
     5   <p id="demo"></p>
     6 
     7   <script>
     8 
     9     var myObj, x;
    10     myObj = { "name":"runoob", "alexa":10000, "site":null };
    11     x = myObj.name;
    12     document.getElementById("demo").innerHTML = x;
    13 
    14   </script>
    15
    16 </body>

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

    <p>你也可以使用中括号([])来访问 JOSN 对象的值:</p>
    
    <p id="demo"></p>
    
    <script>
    
    var myObj, x;
    myObj = myObj = { "name":"runoob", "alexa":10000, "site":null };
    x = myObj["name"];
    document.getElementById("demo").innerHTML = x;
    
    </script>

    3.2 循环对象

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

    1 var myObj = { "name":"runoob", "alexa":10000, "site":null };
    2 for (x in myObj) {
    3     document.getElementById("demo").innerHTML += x + "<br>";
    4 }

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

    1 var myObj = { "name":"runoob", "alexa":10000, "site":null };
    2 for (x in myObj) {
    3     document.getElementById("demo").innerHTML += myObj[x] + "<br>";
    4 }

    3.3 嵌套 JSON 对象

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

    1 myObj = {
    2     "name":"runoob",
    3     "alexa":10000,
    4     "sites": {
    5         "site1":"www.hust.edu.cn",
    6         "site2":"m.hust.edu.cn",
    7         "site3":"c.hust.edu.cn"
    8     }
    9 }

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

    x = myObj.sites.site1;
    // 或者
    x = myObj.sites["site1"];

    3.4 修改值

    使用点号(.)来修改 JSON 对象的值:
    
    myObj.sites.site1 = "www.google.com";
    
    使用中括号([])来修改 JSON 对象的值:
    
    myObj.sites["site1"] = "www.google.com";

    3.5 删除对象属性

    使用 delete 关键字来删除 JSON 对象的属性:
    
    delete myObj.sites.site1;
    
    使用中括号([])来删除 JSON 对象的属性:
    
    delete myObj.sites["site1"]

    3.6 json 对象和 json 字符串的区别:

    json 对象

    var str2 = { "name": "asan", "sex": "man" };

    json字符串

    var str1 = '{ "name": "deyuyi", "sex": "man" }';

     
  • 相关阅读:
    js模板
    block,inline和inline-block概念和区别
    jquery parent和parents,children和find
    (CVE-2015-5254)ActiveMQ 反序列化漏洞复现
    办公系统致远OA漏洞
    CVE-2018-16509 GhostScript 沙箱绕过(命令执行)漏洞
    phpmyadmin-相关漏洞详解
    XXL-JOB(任务调度中心)-反弹getshell
    组策略(域和域服务的搭建)
    解决在NAT模式下物理机无法ping通虚拟机的问题
  • 原文地址:https://www.cnblogs.com/huststl/p/8276099.html
Copyright © 2011-2022 走看看