stringify()
把JavaScript对象序列化为JSON字符串
var book = { title: "Professional JavaScript", authors: [ "Nicholas C. Zakas" ], edition: 3, year: 2011 } var jsonText = JSON.stringify(book);
stringify()中可传三个参数:需要序列化的JavaScript对象、过滤器(数组/函数)、指定字符串缩进方式。
过滤结果
若为数组: var book = { "title":"Professional JavaScript", "authors:" [ "Nicholas C. Zakas" ], edition: 3, year: 2011 }; var jsonText = JSON.stringify(book,["title", "edition"]); 那么jsonText就为: {"title":"Professional JavaScript","edition":3} 若为函数: var jsonText = JSON.stringify(book, function(key,value)){ switch(key){ case "authors": return value.join(",") case "year": return 5000; case "edition": return undefined; default: return value; } }
字符串缩进
要在每个级别缩进4个空格 var jsonText = JSON.stringify(book,null,4); 将缩进字符改为短划线之类的任意字符: var jsonText = JSON.stringify(book,null,"- -");
toJSON方法
直接在JavaScript对象中添加toJSON方法 var book = { "title":"Professional JavaScript", "authors:" [ "Nicholas C. Zakas" ], edition: 3, year: 2011, toJSON:function(){ return this.title; } }; var jsonText = JSON.stringify(book);
parse()
把JSON字符串解析 为原生JavaScript值。
var bookCopy = JSON.parse(jsonText);
JSON.parse()方法也可以接收另一个参数,该参数是一个函数,将在每个键值对儿上调用。
var book = { "title":"Professional 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; } }
JavaScript中JSON的解析与序列化
最新推荐文章于 2025-05-17 16:57:51 发布