JCR / Sling - имеет ли смысл свойство Node содержать значение JSON, ИЛИ создавать соответствующие подузлы? - PullRequest
0 голосов
/ 21 декабря 2018

Я занимаюсь разработкой довольно простого компонента AEM, но я застрял в понимании передового опыта.

Например, скажем, я хочу сохранить набор Link объектов, каждый из которых содержит href & title properties.

Это может быть сохранено двумя способами:

[1] Каждая ссылка какотдельный узел:

 component
    ├── link_1
    │   ├── .href  = "#1"
    │   └── .title = "T1"
    └── link_2
        ├── .href  = "#2" 
        └── .title = "T2"

[2] Как свойство JSONArray ниже component:

 component
    └── .links = [{"href":"#1", "title":"T1"}, {"href":"#2", "title":"T2"}]

После записи этого, я думаю,ответил на мой собственный вопрос ...

Несмотря на то, что Option [2] привлекателен для разработки компонентов, он кажется излишним, когда моделирование данных JCR / Sling уже обеспечивает такую ​​иерархию.


  • Правильно ли я понимаю?

  • Я знаю, что можно экспортировать Resource как JSON, но возможно ли импортировать / создатьSyntheticResource от JSON?

    • Если бы не это, когда было бы одно использование SyntheticResource
  • Буду ли я лучше хранить linkузлы под отдельным отдельным родительским узлом для организации?

component └── links ├── link_1 │ ├── .href = "#1" │ └── .title = "T1" └── link_2 ├── .href = "#2" └── .title = "T2"

1 Ответ

0 голосов
/ 21 декабря 2018

Я бы рекомендовал создавать узлы в jcr.Хранение в формате json может запретить вам использовать (или усложнить использование) ряд функций, предоставляемых jcr / aem, например, индексацию, поиск, обработку событий, контроль доступа и т. Д.

Хотя ваш пример прост и некоторые извышеперечисленные вещи могут не применяться, это создаст проблемы, если кто-то будет хранить более сложные данные как json.

...