Иерархии и ссылки в формате JSON

Механизм ItemFileReadStore не только реализует интерфейс Read, но и добавляет к нему некоторые свои особенности, включая свой формат данных, свой синтаксис запросов, свое средство десериализации значений атрибутов, свой способ идентификации элементов и т. д. Одна ко, прежде чем перейти к изучению этих особенностей, рассмотрим некоторые примеры данных, совместимых с ItemFileReadStore. Существуют две особенности, связанные с представлением данных: иерархии в формате JSON и ссылки в формате JSON. Иерархии в формате JSON состоят из вложенных ссылок, представляющих конкретные экземпляры элементов, а ссылки в формате JSON содержат данные, которые указывают на фактические элементы данных.

Чтобы понять различия между этими двумя разновидностями, сначала взгляните на два следующих примера. Первый пример – иерархия в формате JSON:
{
identifier : id,
items : [
{
id : 1, name : "foo", children : [
{id : 2, name : "bar"},
{id : 3, name : "baz"}
]
}
/* еще элементы... */
]
}

А теперь – пример ссылок в формате JSON:
{
identifier : id,
items : [
{
id : 1, name : "foo", children : [
{_reference: 2},
{_reference: 3}
]
},
{id : 2, name : "bar"},
{id : 3, name : "baz"}
/* еще элементы...


*/
]
}

В обоих случаях присутствует элемент foo, имеющий два дочерних элемента, но в примере с иерархией дочерние элементы явно вложены в родительский элемент, тогда как в примере со ссылками используются вложенные указатели на элементы. Главное преимущество формата JSON со ссылками заключается в его гибкости – он позволяет объявлять элементы дочерними более чем в одном родительском элементе, а также обеспечивает возможность объявлять все элементы на корневом уровне. Обе эти возможности очень удобны и широко используются во многих приложениях.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
ItemFileReadStore
ItemFileWriteStore
Анализ ItemFileReadStore
Запрос дочерних элементов
Извлечение элемента по идентификатору

Вернуться в раздел: Dojo / Абстракция данных