Meteor EJSON


EJSON是JSON語法的擴充套件,支援日期和二進位制型別。


安裝EJSON

要安裝JSON包,我們需要從命令提示字元視窗中新增,執行如下命令:
C:\Users\Administrator\Desktop\meteorApp>meteor add ejson

Date範例

我們可以用解析 parse 方法反序列化日期。
if (Meteor.isClient) {
   var myEjsonDate = '{"$date": 1455039732453}'; var myDate = EJSON.parse(myEjsonDate);
   console.log(myDate);
}
控制台將記錄正確的日期值。


Binary範例

同樣可以應用到二進位制型別。
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);
}
我們可以在控制台看到新的值。


S.No.
方法與細則
1

EJSON.parse(string)

用於將解析字串成JSON值
2

EJSON.stringify(value)

用於序列化值的字串
3

EJSON.fromJSONValue(value)

用於從JSON反序列化成一個 JSON 值
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)

用於建立一個自定義的JSON型別
10

customType.typeName()

用於返回自定義型別的名稱
11

customType.toJSONValue()

用於序列化的自定義型別
12

customType.clone()

用於返回自定義型別的深層復制。
13

customType.equals(otherValue)

用於自定義型別值和其他型別值之間的比較。