zoukankan      html  css  js  c++  java
  • JSON

    JSON: JavaScript Object Notation(JavaScript 对象标记法)。

    //存储数据:
    myObj = { name:"Bill Gates",  age:62, city:"Seattle" };
    myJSON =  JSON.stringify(myObj);
    localStorage.setItem("testJSON", myJSON);
    
    //接收数据:
    text = localStorage.getItem("testJSON");
    obj =  JSON.parse(text);
    document.getElementById("demo").innerHTML = obj.name;

    JSON 语法规则

    JSON 语法衍生于 JavaScript 对象标记法语法:

    • 数据在名称/值对中
    • 数据由逗号分隔
    • 花括号容纳对象
    • 方括号容纳数组

    JSON 数据- 名称和值

    实例

    "name":"Bill Gates"

    JSON 名称需要双引号。而 JavaScript 名称不需要。

    JSON – 求值为 JavaScript 对象

    JSON 格式几乎等同于 JavaScript 对象。

    在 JSON 中,键必须是字符串,由双引号包围:

    JSON 值

    在 JSON 中,值必须是以下数据类型之一:

    • 字符串
    • 数字
    • 对象(JSON 对象)
    • 数组
    • 布尔
    • null

    在 JavaScript 中,以上所列均可为值,外加其他有效的 JavaScript 表达式,包括:

    • 函数
    • 日期
    • undefined

    在 JSON 中,字符串值必须由双引号编写:

    JSON

    { "name":"Bill Gates" }

    在 JavaScript 中,您可以书写使用双引号或单引号的字符串值:

    JavaScript

    { name:'Bill Gates' }

    var person =  { name : "Bill Gates", age : 62, city : "Seattle" };
    person.name;
    person["name"];

    JSON.parse()

    JSON 的常规用途是同 web 服务器进行数据传输。

    在从 web 服务器接收数据时,数据永远是字符串。

    通过 JSON.parse() 解析数据,这些数据会成为 JavaScript 对象。


    或者您可以已使用 JSON.parse() 函数的第二个参数,被称为 reviver

    这个 reviver 参数是函数,在返回值之前,它会检查每个属性。

    比如

    var text =  '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}';
    var obj = JSON.parse(text, function (key, value) {
        if  (key == "birth") {
            return new Date(value);
        } else {
             return value;
       }});
     
    document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;

    把字符串转换为函数:

    var text =  '{ "name":"Bill Gates", "age":"function () {return 62;}", "city":"Seattle"}';
    var obj = JSON.parse(text);
    obj.age = eval("(" + obj.age + ")");
     
    document.getElementById("demo").innerHTML = obj.name + ", " +  obj.age();

    您应该避免在 JSON 中使用函数,函数会丢失它们的作用域,而且您还需要使用 eval() 把它们转换回函数。

    JSON.stringify()

    JSON 的常规用途是同 web 服务器进行数据交换。

    在向 web 服务器发送数据时,数据必须是字符串。

    通过 JSON.stringify() 把 JavaScript 对象转换为字符串。

    <!DOCTYPE html>
    <html>
    <body>
    
    <h1>从 JavaScript 对象创建 JSON 字符串</h1>
    
    <p id="demo"></p>
    
    <script>
    var obj = { name: "Bill", age: 62, city: "Seatle" };
    var myJSON = JSON.stringify(obj);
    document.getElementById("demo").innerHTML = myJSON;
    </script>
    
    </body>
    </html>

    在 JSON 中,不允许函数作为对象值。

    JSON.stringify() 函数将从 JavaScript 对象删除任何函数,包括键和值:

    JSON 对象

    { "name":"Bill Gates", "age":62, "car":null }

    JSON 对象被花括号 {} 包围。

    JSON 对象以键/值对书写。

    键必须是字符串,值必须是有效的 JSON 数据类型(字符串、数字、对象、数组、布尔或 null)。

    键和值由冒号分隔。

    每个键/值对由逗号分隔。

    访问对象值

    可以使用.或者是[]

    比如x = myObj.name;  x = myObj["name"];

    遍历对象

    for-in 遍历对象属性:

    myObj =  { "name":"Bill Gates", "age":62, "car":null };
    for (x in myObj) {
       document.getElementById("demo").innerHTML  += x;
    }

    删除对象属性

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

    实例

    delete myObj.name;

    JSON 数组

    您可以通过使用索引号来访问数组值:

    您可以通过使用 for-in 循环来访问数组值:

    或者您可以使用 for 循环:

    删除数组项目

    请使用 delete 关键词来删除数组中的项目:

    实例

    delete myObj.cars[1];
  • 相关阅读:
    @SpringBootApplication注解的理解
    git详解
    什么是maven?
    redis发布订阅实战
    报文示例
    Cisco的ACI究竟是什么?它和SDN有关系吗?
    IP数据包分析
    ARP数据包分析
    水冷精密空调工作原理
    风冷精密空调工作原理
  • 原文地址:https://www.cnblogs.com/Galesaur-wcy/p/15119866.html
Copyright © 2011-2022 走看看