Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.09.2015, 12:06
Интересующийся
Отправить личное сообщение для Trippal Посмотреть профиль Найти все сообщения от Trippal
 
Регистрация: 28.04.2015
Сообщений: 26

ассоциативный массив из JSON
обыскал весь интернет. Так и не нашел что-нибудь по своему вопросу.
есть массив в файле JSON (в отдельном файле)
{
  "layers": [
    {
      "layercodename": "osm",
      "layername": "Open Street Map",
      "pathto": "http://{s}.tile.osm.org/{z}/{x}/{y}.png",
      "layertype": "basemap",
      "layertypefunction": "ltilelayer"
    },
    {
      "layercodename": "olen",
      "layername": "Треки",
      "pathto": "rerere.json",
      "layertype": "overlay",
      "layertypefunction": "casual",
      "geometry": "polyline",
      "color": "#000",
      "width": 1
    }
  ]
}

Как мне сделать ассоциативный массив, на странице, чтобы в дальнейшем мне можно было оперировать объектами не на прямую прописывать каждое свойство, а обращаться к ассоциативному массиву(своеобразно универсальному массиву), который в свою очередь будет получать свойства из файла JSON?

Т.е. нужно, чтобы страница прочитала массив файла json и организовала пары ключей, чтобы дальше уже пользоваться только ассоциативным массивом для формирования функций различного характера, при этому не терять объекты из массива.

var associatedlayers = (
data.layercodename = layercodename,
data.layername = layername,
etc.)

Последний раз редактировалось Trippal, 21.09.2015 в 12:11.
Ответить с цитированием
  #2 (permalink)  
Старый 21.09.2015, 12:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

В JS нет ассоциативных массивов. У вас есть объект - свойство, это ключ считайте ключ ассоциативного массива. А так var associatedlayers = (
data.layercodename = layercodename, data.layername = layername, etc.), кроме ошибки ничего не получить.
Ответить с цитированием
  #3 (permalink)  
Старый 21.09.2015, 12:57
Интересующийся
Отправить личное сообщение для Trippal Посмотреть профиль Найти все сообщения от Trippal
 
Регистрация: 28.04.2015
Сообщений: 26

в этом случае, как тогда действовать?
я просто не знаю, как написать это...
универсальный объект для объектов JSON
Ответить с цитированием
  #4 (permalink)  
Старый 21.09.2015, 13:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Какой еще универсальный объект? У вас есть массив объектов "layers", получить его свойства, это layers[индекс_массива].имя_свойства.
Ответить с цитированием
  #5 (permalink)  
Старый 21.09.2015, 13:52
Интересующийся
Отправить личное сообщение для Trippal Посмотреть профиль Найти все сообщения от Trippal
 
Регистрация: 28.04.2015
Сообщений: 26

var layers[value.layercodename] = L.tileLayer(value.pathto, {attribution: value.layername});
control.addBaseLayer(value.layername, layers[value.layercodename]);

проблема с этим
Ответить с цитированием
  #6 (permalink)  
Старый 21.09.2015, 14:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

У вас есть массив объектов "layers"... - что это означает? Что есть такое - value.layercodename?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перевести json строку в js массив? Tek Общие вопросы Javascript 1 25.03.2012 17:11
Сформировать массив (JSON, XML не причем) ybiza AJAX и COMET 2 17.05.2011 08:58
Массив AJAX + JSON RCuPeR AJAX и COMET 4 09.02.2011 12:34
Преобразование данных json в массив LA_ Общие вопросы Javascript 4 28.10.2010 23:54
Многомерный массив в json Л_Денис Общие вопросы Javascript 1 21.04.2010 21:43