Такие разборы задач отлично помогают потренироваться в подходах к решению рабочих задач + увеличить насмотренность
Ниже сам JSON, нужно найти ошибки и предложить свои варианты исправления

Мой ход рассуждений для решения задачи
-
Параметр consumer.
Почему это массив? Я так подозреваю, что покупатель может быть только один, тогда делать его массивом избыточно. Если мы это исправим, то у нас уйдут лишние скобки для обозначения объекта и структура станет более читаемой и приятной для работы.
-
Параметр rank меня оч смущает, можно понять двояко структуру.
Если он состоит из 2х параметров, то есть первый это sub: {code:"12321"}, а второй параметр просто без названия {code: "C"}, то я бы дал этому параметру тоже название.
Втораягипотеза, что sub — это внешний какой-то параметр и он относится не к rank, а к consumer, поэтому я бы его вынес наверх и у rank оставил бы просто code C.
Меня в целом очень смущает добавление объекта code. Почему нельзя сразу значение стрингой передать. В чем сакральный смысл усложнения не понятно
-
Формат даты рождения.
Не знаю на сколько ок оставлять в формате dd.mm.yyyy. Может быть стоит передать на ISO, но это бантик. Просто заменится формат на YYYY‑MM‑DD.
Возраст у детей я бы указывал или также датой и вычислял, то есть добавил бы birthdate, а именно цифру возраста указывал бы цифрой, но это тоже спорно.
-
Ну и зачем делать data — тоже не понятно.
Если только у нас не может быть несколько consumer, но я так понимаю, что не может такого быть, поэтому я бы его тоже убрал чтобы структуру не усложнять.
Массив children можно поместить внутрь consumer, так как дети явно относятся к покупателю.
По итогу получается вот такой файл:
{
"consumer": {
"type": "F7",
"rank": "C",
"sub": "C4",
"birthdate":"1980-11-03",
"children": [
{
"birthdate":"1991-11-03",
"age":"11",
"sex":"F"
},
{
"birthdate":"1998-12-07",
"age":"18",
"sex":"M"
}
]
} }
Комментарии (12)
LeshaRB
13.08.2025 11:42Тогда надо childrens, а не children
Singular vs Plural Property Names
https://google.github.io/styleguide/jsoncstyleguide.xml?showone=Singular_vs_Plural_Property_Names#Singular_vs_Plural_Property_Names
Mayurifag
13.08.2025 11:42Что я бы добавил:
Должны ли мы соответствовать какой-нибудь спецификации? Здесь "data" и "type" резанули глаза, случаем не хочет ли интервьюер услышать хоть какое-то упоминание JSON:API (в статье упоминается «насмотренность»)? Тогда немного по-другому будет устроен финальный json.
Должны ли мы максимально оптимизироваться по байтам и сокращать передачу данных? Учитывая, что здесь не бинарный формат (аки тот что в протобафе к примеру), видимо нет, но всё же. Если да - то можно было бы ключи привести к односимвольным, убрать rank, выбрать другой формат даты и в целом большое пространство для шаманства ещё будет на любой вкус и степень аутичности. Uglify по максимуму, короче говоря, поубирать \n, пробельчики, вот это всё ещё.
Несколько непонятно, почему в финальном решении появился второй ребенок, которого на изначальной картинке, кажется, нет.
izibrizi2
13.08.2025 11:42На какую позицию собез? Какой навык проверяется? Типа 5 лет учился в универе, решая зубодробительный матан, а тут вот такое чудо?
Это не насмотренность, а нерелевантная проверка навыков, после которой кандидат не пройдет испытательный срок
MaksimMukharev
13.08.2025 11:42В самой статье не хватает постановки задачи. Я сначала подумал, что проблема может быть в ошибке синтаксиса. Пришлось, действительно, качнуть насмотренность, вглядываясь в пример.
Но когда стало понятно, что вопрос в проектировании, то очень не хватило цели. Задача выглядит слишком оторванной от реальности.
vDyDHp8
13.08.2025 11:42Плюс, тк это может быть кусок аналитической выборки и покупателей может быть много. Без постановки такое себе рассматривать.
qrKot
13.08.2025 11:42Ребят, ну вы чо. Просто невалидная жсонка же:
Data/consumer/rank - тут вложенная структура с полем sub.
А дальше вот эта штука {"code":"C"} вообще родительского узла не имеет. Т.е. rank должен либо массивом быть, либо структурой с полями sub и code
DjUmnik
Оказывается, гонять джейсоны тоже нужно уметь
devunion
Так-да. Видел как-то проект, где в JSON лежали куски HTML и CSS, которые рендерились на клиенте.