Я знаю, что название не совсем понятно, пожалуйста, посмотрите на приведенные ниже примеры.
Мне нужно сохранить некоторые данные со схожей структурой в файле JSON, и приложение выполнит поиск данные и вернуть конкретный объект. Например, если введено значение overview
, приложение вернет значения layout
и url
(см. JSON ниже).
Моя первая мысль - сохранить данные в виде массива, поскольку это более логично, так как данные имеют схожую структуру и не имеют взаимосвязи между собой:
[
{
"page": "overview",
"layout": "layout_a",
"urls": [
["url1", "url2", "url3"],
["url4", "url5", "url6"],
["url7", "url8"]
]
},
{
"page": "frontpage",
"layout": "layout_b",
"urls": [
["url1", "url2", "url3"],
["url4", "url5"]
]
},
...
]
Количество сохраняемых объектов, возможно, от 20 до 30. И я боюсь, что циклический цикл над массивом выше может вызвать накладные расходы приложения, так как к нему будет большое количество запросов. Поэтому у меня есть другая идея использовать объекты с ключами для хранения данных:
{
"overview": {
"layout": "layout_a",
"urls": [
["url1", "url2", "url3"],
["url4", "url5", "url6"],
["url7", "url8"]
]
},
"frontpage": {
"layout": "layout_b",
"urls": [
["url1", "url2", "url3"],
["url4", "url5"]
]
}
}
Таким образом, я могу получить нужные данные только по имени ключа, то есть pages['overview']
, вместо того, чтобы выполнять поиск по массив снова и снова. Проблема в том, что этот дизайн кажется нелогичным, потому что overview
и frontpage
являются своего рода взаимоисключающими и не являются "свойствами" объекта.
Может кто-нибудь посоветовать и дать мне несколько идей?