EJSON — это расширение синтаксиса JSON, которое поддерживает типы Date и Binary .
Установить EJSON
Чтобы установить пакет EJSON, нам нужно добавить его из окна командной строки.
C:\Users\username\Desktop\meteorApp>meteor add ejson
Пример даты
Мы можем десериализовать дату, используя метод разбора .
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); }
Мы можем увидеть наши новые значения в консоли.
EJSON.parse (строка)
Используется для разбора строки в значение EJSON.
EJSON.stringify (значение)
Используется для сериализации значения в строку.
EJSON.fromJSONValue (значение)
Используется для десериализации значения EJSON из JSON.
EJSON.toJSONValue (значение)
Используется для сериализации значения EJSON в JSON.
EJSON.equals (значение1, значение2)
Используется для сравнения, если два значения равны.
EJSON.clone (значение)
Используется для возврата глубокой копии значения.
EJSON.newBinary
Используется для назначения двоичных данных, которые EJSON может сериализовать.
EJSON.isBinary (х)
Используется для проверки, является ли значение двоичными данными.
EJSON.addType (имя, фабрика)
Используется для создания пользовательского типа EJSON.
customType.typeName ()
Используется для возврата имени пользовательского типа.
customType.toJSONValue ()
Используется для сериализации пользовательских типов.
customType.clone ()
Используется для возврата глубокой копии пользовательского типа.
customType.equals (otherValue)
Используется для сравнения между значением пользовательского типа и другим значением.