zoukankan      html  css  js  c++  java
  • JSON——李炎灰js笔记

    //JSON 的简单值
    10
    null
    true
    "fc"
    
    
    //对象表示
    var box = {
        name : 'fc',
        age : 25
    };
    
    
    //JSON对象表示
    {
        "name" : "fc",
        "age" : "25"
    }
    
    '{"name" : "fc","age" : "25"}'
    //PS:JSON说白了就是一个字符串,所以任何表示,都应该加上引号表示字符串。
    
    
    
    
    // 普通数组
    var box = [100, 'fc', true];
    
    // JSON数组
    '[100, "fc", true]'
    // PS:JSON对象和数组比普通对象和数组,少了分号,少了变量赋值,而且本身应该是字符串表示。
    
    
    
    // 最常用的JSON结构
    [
        {
            "name" : "fc",
            "age" : 25
        },
        {
            "name" : "lq",
            "age" : 25
        },
        {
            "name" : "hehe",
            "age" : 25
        }
    ]
    
    
    
    // 模拟加载JSON数据字符串的过程, var json = load('demo.json');
    // 把JSON字符串加载进来并且赋值给json变量。
    
    var json = [{"title":"a","num":1},{"title":"b","num":2}];
    var json1 = '[{"title":"a","num":1},{"title":"b","num":2}]';
    
    console.log(json);  //[Object, Object]
    console.log(json1); //[{"title":"a","num":1},{"title":"b","num":2}]
    console.log(typeof json1);  //string
    
    
    
    
    // 解析和序列化
    // 如果是载入的JSON文件,我们需要对其进行使用,那么就必须对JSON字符串解析成原生的JavaScript值。当然,如果是原生的JavaScript对象或数组,也可以转换成JSON字符串。
    // 对于将JSON字符串解析为JavaScript原生值,早期采用的是eval()函数。但这种方法既不安全,可能会执行一些恶意代码。
    var json = '[{"title":"a","num":1},{"title":"b","num":2}]';
    var box = eval(json);
    console.log(box);   //[Object, Object]
    console.log(box[1].title);  //b
    
    
    
    var box = [
        {
            title : 'a',
            num : 1,
            height : 122
        },
        {
            title : 'b',
            num : 2,
            height : 133
        }
    ]
    
    var json = JSON.stringify(box);
    console.log(json);  //[{"title":"a","num":1,"height":122},{"title":"b","num":2,"height":133}]
    
    
    
    var box = [
        {
            title : 'a',
            num : 1,
            height : 122
        },
        {
            title : 'b',
            num : 2,
            height : 133
        }
    ]
    
    var json = JSON.stringify(box,['num', 'height']);
    console.log(json);  //[{"num":1,"height":122},{"num":2,"height":133}]
    
    
    
    var box = [
        {
            title : 'a',
            num : 1,
            height : 122
        },
        {
            title : 'b',
            num : 2,
            height : 133
        }
    ]
    
    var json = JSON.stringify(box, function (key, value) {
        if(key === 'title'){
            return 'Mr.' + value;
        } else {
            return value;
        }
    });
    console.log(json);  //[{"title":"Mr.a","num":1,"height":122},{"title":"Mr.b","num":2,"height":133}]
    
    // PS:火狐3.5和3.6在最初支持JSON的时候stringify方法有个小bug,执行funxtion会出错。
    
    
    var box = [
        {
            title : 'a',
            num : 1,
            height : 122
        },
        {
            title : 'b',
            num : 2,
            height : 133
        }
    ]
    
    var json = JSON.stringify(box,['title', 'num'], 4);
    var json2 = JSON.stringify(box,['title', 'num'], '--');
    console.log(json);
    // [
    //     {
    //         "title": "a",
    //         "num": 1
    //     },
    //     {
    //         "title": "b",
    //         "num": 2
    //     }
    // ]
    
    console.log(json2);
    // [
    // --{
    // ----"title": "a",
    // ----"num": 1
    // --},
    // --{
    // ----"title": "b",
    // ----"num": 2
    // --}
    // ]
    
    
    
    var box = [
        {
            title : 'a',
            num : 1,
            height : 122
        },
        {
            title : 'b',
            num : 2,
            height : 133
        }
    ]
    
    var json = JSON.stringify(box,null , 4);
    
    console.log(json);
    // [
    //     {
    //         "title": "a",
    //         "num": 1,
    //         "height": 122
    //     },
    //     {
    //         "title": "b",
    //         "num": 2,
    //         "height": 133
    //     }
    // ]
    
    
    
    
    var box = [
        {
            title : 'a',
            num : 1,
            height : 122,
            toJSON : function () {
                return this.title;
            }
        },
        {
            title : 'b',
            num : 2,
            height : 133,
            toJSON : function () {
                return this.title;
            }
        }
    ]
    
    var json = JSON.stringify(box);
    
    console.log(json);  //["a","b"]
    
    // JSON序列化也有执行顺序,首先执行toJSON()方法;如果应用了第二个参数,则执行这个方法。然后执行序列化过程。比如将键值对组成合法的JSON字符串,比如加上双引号,如果提供了缩进,在执行缩进操作。
    
    
    
    var json = '[{"title":"a","num":1},{"title":"b","num":2}]';
    var box = JSON.parse(json)
    console.log(json);
    高否?富否?帅否? 否? 滚去学习!
  • 相关阅读:
    GHOST CMS
    某小姑娘治疗案
    关于ssl证书的一些知识
    Hbuiler中常用的快捷键
    跌落损任胸胁案
    老年脑梗案
    Centos7安装完成后设定基本的网络配置
    Centos7下的文件压缩
    在centos7上用docker安装宝塔面板
    右手中指一侧麻木案
  • 原文地址:https://www.cnblogs.com/baixc/p/4685183.html
Copyright © 2011-2022 走看看