zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    redis 中 发布订阅 的 数据类型
    excelExport.js 导出 excel 表格
    Go 出现:err is shadowed during return(err在返回过程中被隐藏)
    Go 服务端 向 firebase Android 端 fcm 信息
    Python全栈day 03
    Python全栈day 01
    开发流程与版本管理规范
    php 魔术常量
    sql 消除重复
    重置mysql密码
  • 原文地址:https://www.cnblogs.com/guiren/p/4970969.html
Copyright © 2011-2022 走看看