- Meteor 教程
- Meteor - 首页
- Meteor - 概览
- Meteor - 环境搭建
- Meteor - 第一个应用
- Meteor - 模板
- Meteor - 集合
- Meteor - 表单
- Meteor - 事件
- Meteor - Session
- Meteor - Tracker
- Meteor - 包
- Meteor - 核心 API
- Meteor - Check
- Meteor - Blaze
- Meteor - 定时器
- Meteor - EJSON
- Meteor - HTTP
- Meteor - 邮件
- Meteor - 资源
- Meteor - 安全性
- Meteor - 排序
- Meteor - 账户
- Meteor - 方法
- Meteor - Package.js
- Meteor - 发布与订阅
- Meteor - 结构
- Meteor - 部署
- Meteor - 在移动设备上运行
- Meteor - 待办事项应用
- Meteor - 最佳实践
- Meteor 有用资源
- Meteor - 快速指南
- Meteor - 有用资源
- Meteor - 讨论
Meteor - EJSON
EJSON 是 JSON 语法的扩展,支持 **日期** 和 **二进制** 类型。
安装 EJSON
要安装 EJSON 包,我们需要从命令提示符窗口添加它。
C:\Users\username\Desktop\meteorApp>meteor add ejson
日期示例
我们可以使用 **parse** 方法反序列化 **日期**。
if (Meteor.isClient) { var myEjsonDate = '{"$date": 1455029631493}'; var myDate = EJSON.parse(myEjsonDate); console.log(myDate); }
控制台将记录正确的日期值。
二进制示例
同样的方法可以应用于二进制类型。
if (Meteor.isClient) { var myEjsonBinary = '{"$binary": "c3VyZS4="}'; var myBinary = EJSON.parse(myEjsonBinary); console.log(myBinary); }
您可以看到控制台正在记录新的反序列化值。
序列化
我们可以使用 **stringify** 方法序列化对象。这是上面示例的反向过程。
if (Meteor.isClient) { var myObject = { myDate : new Date(), myBinary : new Uint8Array([115, 117, 114, 101, 46]) } var myEjosnData = EJSON.stringify(myObject); console.log(myEjosnData); }
我们可以在控制台中看到我们的新值。
序号 | 方法和详情 |
---|---|
1 | EJSON.parse(string) 用于将字符串解析为 EJSON 值。 |
2 | EJSON.stringify(value) 用于将值序列化为字符串。 |
3 | EJSON.fromJSONValue(value) 用于从 JSON 反序列化 EJSON 值。 |
4 | EJSON.toJSONValue(value) 用于将 EJSON 值序列化为 JSON。 |
5 | EJSON.equals(value1, value2) 用于比较两个值是否相等。 |
6 | EJSON.clone(value) 用于返回值的深拷贝。 |
7 | EJSON.newBinary 用于分配 EJSON 可以序列化的二进制数据。 |
8 | EJSON.isBinary(x) 用于检查值是否为二进制数据。 |
9 | EJSON.addType(name, factory) 用于创建自定义 EJSON 类型。 |
10 | customType.typeName() 用于返回自定义类型的名称。 |
11 | customType.toJSONValue() 用于序列化自定义类型。 |
12 | customType.clone() 用于返回自定义类型的深拷贝。 |
13 | customType.equals(otherValue) 用于比较自定义类型值和其他值。 |
广告