• JSON与JavaScript的转换


    JSON是一种数据格式,可以把 JSON 直接传给 eval(),而且不必创建 DOM 对象。它有三种类型的值:

    简单值:使用与 JavaScript 相同的语法,可以在 JSON 中表示字符串、数值、布尔值和 nullJSON 不支持 JavaScript 中的特殊值 undefined

    例如:5、“hello world!”
    对象:对象作为一种复杂数据类型,表示的是一组无序的键值对儿。而每个键值对儿中的值可以是简单值,也可以是复杂数据类型的值。

    下面是一个 JavaScript 中的对象字面量:

    var person = {
        name: "Nicholas",
        age: 29
    };

    json表示上述对象的方式如下:

    {
        "name": "Nicholas",
        "age": 29
    }

    属性的值可以是简单值,也可以是复杂类型值,因此可以像下面这样在对象中嵌入对象:

    {
        "name": "Nicholas",
        "age": 29,
        "school": {
            "name": "Merrimack College",
            "location": "North Andover, MA"
        }
    }
    数组:数组也是一种复杂数据类型,表示一组有序的值的列表,可以通过数值索引来访问其中的值。数组的值也可以是任意类型——简单值、对象或数组。

    JavaScript 中的数组字面量:var values = [25, "hi", true];在json中,可以采用同样的语法表示同一个数组:[25, "hi", true]。

    把数组和对象结合起来,可以构成更复杂的数据集合,例如:

    [{
        "title": "Professional JavaScript",
        "authors": [
            "Nicholas C. Zakas"
        ],
        edition: 3,
        year: 2011
    }, {
        "title": "Professional JavaScript",
        "authors": [
            "Nicholas C. Zakas"
        ],
        edition: 2,
        year: 2009
    }, {
        "title": "Professional Ajax",
        "authors": [
            "Nicholas C. Zakas",
            "Jeremy McPeak",
            "Joe Fawcett"
        ],
        edition: 2,
        year: 2008
    }, {
        "title": "Professional Ajax",
        "authors": [
            "Nicholas C. Zakas",
            "Jeremy McPeak",
            "Joe Fawcett"
        ],
        edition: 1,
        year: 2007
    }]

    JSON 不支持变量、函数或对象实例。JavaScript 字符串与 JSON 字符串的最大区别在于, JSON 字符串必须使用双引号(单引号会导致语法错误)。

    JSON 对象有两个方法: stringify()parse()在最简单的情况下,这两个方法分别用于把JavaScript 对象序列化为 JSON 字符串和把 JSON 字符串解析为原生 JavaScript 值。

    var book = {
        "title": "Professional JavaScript",
        "authors": [
            "Nicholas C. Zakas"
        ],
        edition: 3,
        year: 2011
    };
    var jsonText = JSON.stringify(book, null, 4);
    // var jsonText = JSON.stringify(book, null, " - -");
    console.log(jsonText);
    
    var bookCopy = JSON.parse(jsonText, function(key, value) {
        if (key == "releaseDate") {
            return new Date(value);
        } else {
            return value;
        }
    });
    console.log(bookCopy);
  • 相关阅读:
    python学习(20) 网络编程
    MySQL与mongodb数据库备份与恢复
    Java(一)——Ubuntu18.04下Java环境配置
    安全服务——CVE中CVSS相关指标介绍
    爬虫(十一)—— 请求库(三)pypeteer请求库
    爬虫(十)—— scrapy框架
    抓包工具Fiddler
    爬虫(九)—— 爬虫高性能
    爬虫(八)—— 存储库(三)MySQL存储库
    爬虫(七)—— 存储库(二)Redis存储库
  • 原文地址:https://www.cnblogs.com/guiren/p/4970969.html
Copyright © 2020-2023  润新知