Учебники

Метеор — EJSON

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);
}

Консоль запишет правильное значение даты.

Метеор EJSON Дата

Двоичный пример

То же самое можно применить к двоичным типам.

if (Meteor.isClient) {
   var myEjsonBinary = '{"$binary": "c3VyZS4="}';
   var myBinary = EJSON.parse(myEjsonBinary);
   console.log(myBinary);
}

Вы можете видеть, что консоль записывает новое десериализованное значение.

Meteor EJSON Binary

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);
}

Мы можем увидеть наши новые значения в консоли.

Meteor EJSON Stringify

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)

Используется для сравнения между значением пользовательского типа и другим значением.