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) 用于比较自定义类型值和其他值。 |