Meteoro - EJSON
EJSON es una extensión de la sintaxis JSON que admite Date y Binary tipos.
Instalar EJSON
Para instalar el paquete EJSON, debemos agregarlo desde la ventana del símbolo del sistema.
C:\Users\username\Desktop\meteorApp>meteor add ejson
Ejemplo de fecha
Podemos deserializar el date utilizando el parse método.
if (Meteor.isClient) {
var myEjsonDate = '{"$date": 1455029631493}';
var myDate = EJSON.parse(myEjsonDate);
console.log(myDate);
}
La consola registrará el valor de fecha correcto.
Ejemplo binario
Lo mismo se puede aplicar a los tipos binarios.
if (Meteor.isClient) {
var myEjsonBinary = '{"$binary": "c3VyZS4="}';
var myBinary = EJSON.parse(myEjsonBinary);
console.log(myBinary);
}
Puede ver que la consola está registrando un nuevo valor deserializado.
Stringify
Podemos serializar un objeto usando el stringifymétodo. Este es el proceso inverso del ejemplo anterior.
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 nuestros nuevos valores en la consola.
No Señor. | Método y detalles |
---|---|
1 | EJSON.parse(string) Se utiliza para analizar una cadena en un valor EJSON. |
2 | EJSON.stringify(value) Se utiliza para serializar un valor en la cadena. |
3 | EJSON.fromJSONValue(value) Se utiliza para deserializar un valor EJSON de JSON. |
4 | EJSON.toJSONValue(value) Se utiliza para serializar un valor EJSON en JSON. |
5 | EJSON.equals(value1, value2) Se utiliza para comparar si dos valores son iguales. |
6 | EJSON.clone(value) Se utiliza para devolver una copia detallada del valor. |
7 | EJSON.newBinary Se utiliza para asignar datos binarios que EJSON puede serializar. |
8 | EJSON.isBinary(x) Se utiliza para comprobar si el valor es un dato binario. |
9 | EJSON.addType(name, factory) Se utiliza para crear un tipo EJSON personalizado. |
10 | customType.typeName() Se utiliza para devolver un nombre del tipo personalizado. |
11 | customType.toJSONValue() Se utiliza para serializar tipos personalizados. |
12 | customType.clone() Se utiliza para devolver una copia detallada del tipo personalizado. |
13 | customType.equals(otherValue) Se utiliza para comparar entre el valor de tipo personalizado y otro valor. |