• JSON


    跟着廖雪峰老师的  JavaScript 教程学习过程中,当学习到 JSON 时, 突然感觉自己学习过的知识点,是在有必要去总结起来,否则很有可能又吐出来。

    JSON:JavaScript Object Notation的缩写,它是一种数据交换格式,它的最直观的特征就是,我们是以  key-value  为基础,来进行数据的传输,也就是说,我们所见的类似于

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

    是很明显的一个 JSON 形式的数据。



    JSON 常用的函数

     1. stringify , 实际上可以把一个对象展开。

       上面为基础,我们如果运行如下代码:

    var s = JSON.stringify(xiaoming);
    console.log(s);
    
    会出现:
    
    {"name":"小明","age":14,"gender":true,"height":1.65,"grade":null,"middle-school":""W3C" Middle School","skills":["JavaScript","Java","Python","Lisp"]}
    JSON.stringify(xiaoming, ['name', 'skills'], '  ');  //专门筛选 name 和 skills

    function convert(key, value) {
        if (typeof value === 'string') {
            return value.toUpperCase();
        }
        return value;
    }
    
    JSON.stringify(xiaoming, convert, '  ');     //声明一个函数,然后函数作用于 Json 对象

    var xiaoming = {                            //函数不止可以外面定义,还可以在内部定义,从而作用于Json。
        name: '小明',
        age: 14,
        gender: true,
        height: 1.65,
        grade: null,
        'middle-school': '"W3C" Middle School',
        skills: ['JavaScript', 'Java', 'Python', 'Lisp'],
        toJSON: function () {
            return { // 只输出name和age,并且改变了key:
                'Name': this.name,
                'Age': this.age
            };
        }
    };
    
    JSON.stringify(xiaoming); // '{"Name":"小明","Age":14}'                  


    2.Json 形式的字符串,我们用 JSON.parse() 可以转换成 Javascript 形式的 对象。
    
    
    var obj = JSON.parse('{"name":"小明","age":14}', function (key, value) {
        if (key === 'name') {
            return value + '同学';
        }
        return value;
    });
    console.log(JSON.stringify(obj)); // {name: '小明同学', age: 14}
    
    
    

     起初我们没有 Json 对象,我们只有一些key-value 形式的信息,我们通过Json.parse()方法 ,将这些信息组织成一个Json形式的对象。






     

     

       

  • 相关阅读:
    springboot 打包部署
    mybatis 插入空值时报错 TypeException
    margin 居中
    node.js 开发命令行工具 发布npm包
    webstorm vue环境设置
    vue数组操作不触发前端重新渲染
    数字英文超过宽度不换行问题
    Jquery checkbox 遍历
    小图标垂直居中
    vue this.$router.push 页面不刷新
  • 原文地址:https://www.cnblogs.com/3532gll/p/9533556.html
Copyright © 2020-2023  润新知