json - 解析选项
json - 解析选项
中柠檬 发表于12个月前
json - 解析选项
  • 发表于 12个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

JSON.parse( ) 方法可以接收一个函数作为参数 。该函数将在每个键值对上调用。

还原函数(reviewer)和过滤函数(replacer)的签名是一样的。(都需要接收两个参数,key,value。同时,都需要返回一个值。)

如果还原函数返回 undifined,表示从结果中删除相应的键。如果返回其他值,则将该值插入到结果中。(常用于将日期字符串转换为Date对象。)

例如:

var book = {
    "title": "Profession JavaScript",
    "authors": [
        "NIcholas C. Zakas"
    ],
    edition: 3,
    year: 2011,
    releaseDate: new Date(2011,11,1)

};

var jsonText = JSON.stringify(book);

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

console.log(bookCopy);
//输出结果

{ title: 'Profession JavaScript',
  authors: [ 'NIcholas C. Zakas' ],
  edition: 3,
  year: 2011,
  releaseDate: 2011-11-30T16:00:00.000Z }

注意:如果不对Date对象作上述处理,那么输出结果为:

{ title: 'Profession JavaScript',
  authors: [ 'NIcholas C. Zakas' ],
  edition: 3,
  year: 2011,
  releaseDate: '2011-11-30T16:00:00.000Z' }
  • 点赞
  • 收藏
  • 分享
粉丝 7
博文 177
码字总数 83542