Метеор - EJSON
EJSON - это расширение синтаксиса JSON, которое поддерживает Date и Binary типы.
Установить EJSON
Чтобы установить пакет EJSON, нам нужно добавить его из окна командной строки.
C:\Users\username\Desktop\meteorApp>meteor add ejson
Пример даты
Мы можем десериализовать date используя parse метод.
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);
}
Мы можем видеть наши новые значения в консоли.
Sr.No. | Метод и детали |
---|---|
1 | EJSON.parse(string) Используется для преобразования строки в значение EJSON. |
2 | EJSON.stringify(value) Используется для сериализации значения в строку. |
3 | EJSON.fromJSONValue(value) Используется для десериализации значения EJSON из JSON. |
4 | EJSON.toJSONValue(value) Используется для сериализации значения EJSON в JSON. |
5 | EJSON.equals(value1, value2) Используется для сравнения, если два значения равны. |
6 | EJSON.clone(value) Используется для возврата полной копии значения. |
7 | EJSON.newBinary Используется для присвоения двоичных данных, которые EJSON может сериализовать. |
8 | EJSON.isBinary(x) Используется для проверки, является ли значение двоичными данными. |
9 | EJSON.addType(name, factory) Используется для создания настраиваемого типа EJSON. |
10 | customType.typeName() Используется для возврата имени произвольного типа. |
11 | customType.toJSONValue() Используется для сериализации пользовательских типов. |
12 | customType.clone() Используется для возврата полной копии пользовательского типа. |
13 | customType.equals(otherValue) Используется для сравнения значения настраиваемого типа и другого значения. |