Почему и когда нам нужно сгладить объекты JSON?

Я удивлен, что никто на StackOverflow не задавал этот вопрос раньше.

Просмотр документации по объекту JSON и быстрый поиск в Google не дали удовлетворительных результатов.

В чем его преимущество? Как это работает?


Изменение: Чтобы было понятно, взгляните на этот пример сглаживания/не сглаживания.

Самый быстрый способ сглаживать/не сглаживать вложенные объекты JSON

Спасибо.

Ответы

Ответ 1

Есть много ситуаций, когда вы получаете текст JSON, который был автоматически создан некоторой библиотекой. На всех языках программирования существует множество библиотек, которые создают текст JSON (один

Ответ 2

Вот простой сценарий: в веб-приложении у вас есть HTTP POST, который обновляет сложный реляционный объект.

POST
update=1
&user.id=12345
&[email protected]
&user.profile.name=Mr. Test
&user.profile.age=42
&[email protected]
&[email protected]
&[email protected]
&user.profile.skill.0.id=100
&user.profile.skill.0.name=javascript
&user.profile.skill.1.id=200
&user.profile.skill.1.name=piano

Все уже в плоской структуре, поэтому почему бы не сделать простой привязкой один к одному? Если у вас есть список ограничений или требований безопасности, которые необходимы для обеспечения соблюдения, вы можете проверить их, выполнив поиск непосредственно в списке отсортированных ключей.

Плоские структуры легче понять людям и работать с ними даже при переходе с де-нормализацией базы данных. Это также позволяет использовать специфическую для контекста безопасность и ограничения в читаемом, но более подробном виде.

При полном просмотре пользовательского представления вы можете скрыть отображение идентификатора первичного ключа для списка навыков пользователя.

"user.profile.skill.#.id": { hidden: true, readonly: true }

Но если вы посмотрите прямо на умение (возможно, отредактируйте его как администратор), вы можете увидеть ID.

"skill.id": { readonly: true }

Если вы пишете приложение CMS с пользовательским ориентиром/самообслуживанием, вы получите больше пользователей на борту и сможете вносить вклад с использованием простой плоской модели (плоская абстракция базовой вложенной реляционной модели), чем вы бы с помощью вложенная модель.

TL;DR: Flat легче читать, чем вложенный. Хотя программисты могут обрабатывать вложенные схемы, рекурсивный синтаксический анализ и обработку; конечные пользователи и администраторы обычно предпочитают, чтобы часть абстрагировалась.