Такие разборы задач отлично помогают потренироваться в подходах к решению рабочих задач + увеличить насмотренность
Ниже сам 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" } ] } }
ссылка на оригинал статьи https://habr.com/ru/articles/936672/
Добавить комментарий