- var jsonString = JSON.stringify(value [, replacer [, space]])
- value(必选): 需要转换为JSON格式字符串的javascript对象
- replacer(可选): 允许函数或者数组作为参数, 当数组作为参数时起到白名单作用, 只有key在数组中的属性才会序列化到输出字符串中. 当函数作为参数时接收两个参数: key和需要序列化的value, key所在对象作为this值, 函数最终返回值如果是Number, String, Boolean那么对应的string类型将参与key序列化, 如果返回的是一个对象, 继续对该对象stringify返回值参与key序列化, 如果返回值是undefined那这个key和value不会出现最后的字符串中
- space(可选): 用来排版的字符串或数字, 数字设置字符间空格的数量取值为[0, 10]不在取值范围内的将规约到最近的边界值, 当类型为字符串时最多允许10个字符, 超过10个的取前十个
- 如果序列化的对象含有toJSON方法, 则使用此方法
- JSON.parse(text [, reviver])
- text(必选): 需要解析为javascript对象的字符串
- reviver(可选): 每一个key/value解析后传入函数如果如果返回值为null或者undefined, 则这个属性不会添加到新创建的对象中, 其他返回值作为value参与对象创建
JSON.stringify() 和JSON.parse()在较高级版本中才有实现, 在老版本的浏览器中可使用第三方库模拟, 这样能避免直接使用eval()带来的危险
参考: http://www.json.org/js.html
http://msdn.microsoft.com/en-us/library/ie/cc836466%28v=vs.94%29.aspx
https://developer.mozilla.org/en-US/docs/Using_native_JSON
一个不错的第三方库: https://github.com/douglascrockford/JSON-js