Meteor - EJSON
EJSON 是 JSON 语法的扩展,支持 Date 和 Binary 类型。
安装 EJSON
要安装 EJSON 包,我们需要从命令提示符窗口添加它。
C:\Users\username\Desktop\meteorApp>meteor add ejson
日期示例
我们可以使用 parse 方法反序列化 date。
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
我们可以使用 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);
}
我们可以在控制台中看到我们的新值。
| Sr.No. | 方法 &详细信息 |
|---|---|
| 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) 用于比较自定义类型值和其他值。 |

