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. |