Рассмотрим веб-сервис, который предоставляет фрагменты данных в формате JSON в виде объекта или массива объектов.Например:
/* original data */
{
"departments": {
"accounting": {
"name": "Jane Doey",
"age": "38"
},
"advertisement": [
{
"name": "Mary Elizabeth",
"age": "22"
},
{
"name": "Arthur Cobb",
"age": "34"
},
{
"name": "William Doubtfire",
"age": "52"
}
]
}
}
При переборе этого JSON я перебираю «отделы» и вижу, что значение «accounting» - это объект, представляющий персонал, а значение «advertising» - массивиз трех объектов каждый персонал.Так что мне нужно
- Сначала проверить тип данных
- Если это объект, считать его персоналом
- Если это цикл массива, хотя его нужно найтисотрудники в этом списке.
Я уже видел этот прежний подход во многих веб-сервисах. Не лучше ли построить JSON, чтобы, даже если в отделе был только один персонал, он все равно представлял собой массив (содержащий один элемент)?Это было бы намного проще итерации и избавило бы от необходимости проверки типа.
/* my alternative */
{
"departments": {
"accounting": [
{
"name": "Jane Doey",
"age": "38"
}
],
"advertisement": [
{
"name": "Mary Elizabeth",
"age": "22"
},
{
"name": "Arthur Cobb",
"age": "34"
},
{
"name": "William Doubtfire",
"age": "52"
}
]
}
}
Мой вопрос:
Интересно, это результат плохого дизайна или естьвеские основания для этого.Может кто-нибудь захочет объяснить?