• 廖雪峰js教程学习记录——JSON


    JSON是JavaScript Object Notation的缩写,它是一种数据交换格式,很多高级语言内置了JSON库。

    JSON实际上是JavaScript的一个子集。在JSON中,一共就这么几种数据类型:

    • number:和JavaScript的number完全一致;
    • boolean:就是JavaScript的truefalse
    • string:就是JavaScript的string
    • null:就是JavaScript的null
    • array:就是JavaScript的Array表示方式——[]
    • object:就是JavaScript的{ ... }表示方式。
    • 以及上面的任意组合。

    并且,JSON还定死了字符集必须是UTF-8,表示多语言就没有问题了。为了统一解析,JSON的字符串规定必须用双引号"",Object的键也必须用双引号""

    序列化(把JavaScript对象变成JSON)

    首先定义一个对象xiaoming

    var xiaoming = {
        name: '小明',
        age: 14,
        gender: true,
        height: 1.65,
        grade: null,
        'middle-school': '"W3C" Middle School',
        skills: ['JavaScript', 'Java', 'Python', 'Lisp']
    };
    

    然后序列化该对象

    JSON.stringify(xiaoming); // '{"name":"小明","age":14,"gender":true,"height":1.65,"grade":null,"middle-school":""W3C" Middle School","skills":["JavaScript","Java","Python","Lisp"]}'
    

    产生整齐一点的JSON字符串可以这样写:

    JSON.stringify(xiaoming,null,' ');

    第二个参数可以用一个数组/函数代替。以此产生用户所需的JSON字符串。

    反序列化

    拿到一个JSON格式的字符串,我们直接用JSON.parse()把它变成一个JavaScript对象:

    JSON.parse('[1,2,3,true]'); // [1, 2, 3, true]
    JSON.parse('{"name":"小明","age":14}'); // Object {name: '小明', age: 14}
    JSON.parse('true'); // true
    JSON.parse('123.45'); // 123.45
    

    JSON.parse()还可以接收一个函数,用来转换解析出的属性:

    JSON.parse('{"name":"小明","age":14}', function (key, value) {
    // 把number * 2:
    if (key === 'name') {
    return value + '同学';
    }
    return value;
    }); // Object {name: '小明同学', age: 14}
  • 相关阅读:
    Codeforces 1457D XOR-gun
    华东交通大学2020年ACM“双基”程序设计竞赛 题解
    Codeforces-1433F-Zero Remainder Sum
    Codeforces-1430D- String Deletion
    Codeforces 1315D Recommendations
    Codeforces Skyscrapers (hard version)
    Codeforces-1470C(Chocolate Bunny)
    Hdu 6863
    杭电多校2020-7&&hdu 6769 In Search of Gold
    Codeforces-1384B2 Koa and the Beach (Hard Version)
  • 原文地址:https://www.cnblogs.com/shiliu123456/p/5749740.html
Copyright © 2020-2023  润新知