JavaScript JSON 相关总结

本文主要对 JSON 进行总结。JSON 全称为 JavaScript Object Notation,用于结构和标准化数据,很多语言都有其解析器和序列化器。介绍了 JSON 的格式,以及解析和序列化方法,如 JSON.stringify() 和 JSON.parse(),还说明了相关方法的参数使用及自定义序列化和修改数据的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSON 总结

JSON 全称为 JavaScript Object Notation,被设计出来用于结构和标准化数据,他现在已经被很多语言所使用,他们都有针对JSON的解析器和序列化器。

  1. JSON的格式:
    可以表示简单值,数组和对象 双引号包括主变量名和值

  2. JSON的解析和序列化:
    JSON.stringify() 对象-》JSON string
    JSON.parse() JSON string -》对象

  3. JSON.stringify() 第二个参数若为字符数组,可以使用其字符数组的方式来过滤结果
    JSON.stringify() 第二个参数若为函数,可以通过在尾部加入字符数组的方式来修改生成的结果
    JSON.stringify() 第三个参数用于控制结果中的缩进的空白符

  4. toJSON()方法: 可以通过给任意对象定义toJSON方法来进行自定义序列化。

  5. JSON.stringify方法流程:
    <1> 如果存在toJSON方法而且能够取通过他取得有效的值,调用该方法。
    <2> 如果提供第二个参数,应用该过滤器,传入的函数是第一步返回的值
    <3> 对第二步的过滤后的值进行序列化
    <4> 根据第三个参数进行格式化

  6. JSON.parse(): 方法可以接收另一个参数,这个参数为一个函数,
    <1> 如果该函数返回undefined,则删除对应的键;
    <2> 如果该函数返回值,则将该值插入到结果。该方法可用来对指定数据进行自定义修改
    对于该方法,通过一个需求可以解释:
    如果我在读JSON数据的时候,有一条消息是读取日期Date,我想要每次读取该JSON字符串时,该键值应该更新为当前读取时间,而不是JSON字符串中的键值,这样,这个函数可以轻易实现。如下:

<!DOCTYPE html>
<html>
<head>
    <title>JSON Parse Example</title>
</head>
<body>
    <p>This example parses a string containing a date into an object.</p>
    <script type="text/javascript">
        var book = {
                       "title": "Professional JavaScript",
                        "authors": [
                            "Nicholas C. Zakas"
                        ],
                        "edition": 3,
                        "year": 2011,
                        "releaseDate": new Date(2011, 0, 1)
                   };

        var jsonText = JSON.stringify(book);
        alert(jsonText);
        
        var bookCopy = JSON.parse(jsonText, function(key, value){
            if (key == "releaseDate"){
                return new Date();
            } else {
                return value;
            }
        });
        
        alert(bookCopy.releaseDate);

    </script>
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Volavion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值