Meteoro - EJSON

EJSON é uma extensão da sintaxe JSON que suporta Date e Binary tipos.

Instale EJSON

Para instalar o pacote EJSON, precisamos adicioná-lo a partir da janela do prompt de comando.

C:\Users\username\Desktop\meteorApp>meteor add ejson

Exemplo de data

Podemos desserializar o date usando o parse método.

if (Meteor.isClient) {
   var myEjsonDate = '{"$date": 1455029631493}';
   var myDate = EJSON.parse(myEjsonDate);
   console.log(myDate);
}

O console registrará o valor de data correto.

Exemplo Binário

O mesmo pode ser aplicado a tipos binários.

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

Você pode ver que o console está registrando um novo valor desserializado.

Stringify

Podemos serializar um objeto usando o stringifymétodo. Este é o processo reverso do exemplo acima.

if (Meteor.isClient) {

   var myObject = {
      myDate : new Date(),
      myBinary : new Uint8Array([115, 117, 114, 101, 46])
   }

   var myEjosnData = EJSON.stringify(myObject);
   console.log(myEjosnData);
}

Podemos ver nossos novos valores no console.

Sr. Não. Método e detalhes
1

EJSON.parse(string)

Usado para analisar uma string em valor EJSON.

2

EJSON.stringify(value)

Usado para serializar um valor para a string.

3

EJSON.fromJSONValue(value)

Usado para desserializar um valor EJSON de JSON.

4

EJSON.toJSONValue(value)

Usado para serializar um valor EJSON em JSON.

5

EJSON.equals(value1, value2)

Usado para comparar se dois valores são iguais.

6

EJSON.clone(value)

Usado para retornar uma cópia profunda do valor.

7

EJSON.newBinary

Usado para atribuir dados binários que o EJSON pode serializar.

8

EJSON.isBinary(x)

Usado para verificar se o valor é um dado binário.

9

EJSON.addType(name, factory)

Usado para criar um tipo EJSON customizado.

10

customType.typeName()

Usado para retornar um nome do tipo personalizado.

11

customType.toJSONValue()

Usado para serializar tipos personalizados.

12

customType.clone()

Usado para retornar uma cópia profunda do tipo personalizado.

13

customType.equals(otherValue)

Usado para comparação entre o valor do tipo customizado e outro valor.