JSON基础

Json是一种数据格式,不是编程语言,语法形式和js一样

最重要的四点,bug通常地方:
    1.没有变量申明 2.没有末尾的分号,逗号等所有符号 3.对象的属性必须加 “双引号” !



语法:
    简单值: 字符串,数值,布尔值和null,不支持undefined
        5               数值类型
        "Hello word"    字符串类型 (字符串必须用 "双引号" )
    复杂型> 对象:
        js中的写法:
            var person={
                name:"Nicholas",
                age:29,
            };
        json中的写法:
        {
            "name":"Nicholas",
            "age":29,
        }
        json中 1.没有变量申明 2.没有末尾的分号 3.对象的属性必须加 “双引号” !
        也可以在对象里面嵌入复杂类型的数据:
        {
            "name":"Nicholas",
            "age":29,
            "school":{
                "name":"webbing",
                "age":20,
            }
        }
    复杂型> 数组:
        js中的写法:
            var values=[25,"hi",true];
        json中的写法:
            [25,"hi",true]
        同样的 1.没有变量申明 2.没有末尾的分号 3. “双引号” !
    json中数组和对象结合起来可以构成更复杂的数据集合,对象和数组通常是json数据结构的最外层:
    [
        {
            "title":"professional JavaScript",
            "authors":[
                "Nicholas C. Zakas"
            ],
            "edition":3,
            "yeah":2011,
        },
        {
            "title":"professional JavaScript",.
            "authors":[
                "Nicholas C. Zakas"
            ],
            "edition":2,
            "yeah":2008,
        },
    ]


解析与序列化
    JSON.stringify()
        使用JSON.stringify()把一个js对象序列化为一个json字符串,然后保存在jsonText中
            var book={
                title:"javaScript",
                year:2011,
            };
            var jsonText=JSON.stringify(book);
        jsonText中的字符串是
            {title:"javaScript",year:2011,}
        在序列化js对象时,所有的空格,缩进和undefined都会被跳过,结果中最终都是有效的json数据类型的属性


        JSON.stringify()除了序列化js对象外,还可以接收两个参数:
            第一个参数是过滤器,可以是一个数组,也可以是一个函数
                var book={
                    title:"javaScript",
                    "authors":[
                        "webbing"
                    ],
                    edition:3,
                    year:2011,
                };
                var jsonText=JSON.stringify(book,["title","year"]);
                返回的字符串:
                {title:"javaScript",year:2011,}
            第二个参数是一个选项,表示JSON字符串中是否保留缩进
                var book={
                    title:"javaScript",
                    "authors":[
                        "webbing"
                    ],
                    edition:3,
                    year:2011,
                };
                第二个参数可以填数值,最大不能超过10,超过只会出现10个缩进
                    var jsonText=JSON.stringify(book,null,4);
                也可以填字符串,用字符串代替空格
                    var jsonText=JSON.stringify(book,null,"--");


    JSON.parse()
        将json字符串直接传递给JSON.parse()就可以得到相应的js值
        如果传给JSON.parse()的字符串不是有效的JSON,该方法会报错
            var bookcopy=JSON.parse(jsonText);


    toJSON
        toJSON() 方法可以将 Date 对象转换为字符串,并格式化为 JSON 数据格式。
        返回字符串的 Date 对象,并格式化为 JSON 数据:
            var d=new Date();
            var n=d.toJSON();
        n 输出结果:
            2018-01-15T12:11:54.651Z
        JSON中的用法:
        var book={
            "title":"JavaScript",
            toJSON:function(){
                return this.title;
            };
        };
        var jsonText=JSON.stringify(book);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值