Показать сообщение отдельно
  #6 (permalink)  
Старый 05.06.2016, 23:24
Профессор
Отправить личное сообщение для Blondinka Посмотреть профиль Найти все сообщения от Blondinka
 
Регистрация: 21.03.2014
Сообщений: 173

promise работает; могу получить данные .json. Проблема в том, что не могу:
1) Добраться к конкретным значениям. Например, получить id и город.
console.log(response.indexOf("Hurzuf")); //Result -> 22

А хочется получить индекс объекта, а не первого символа слова.
2) Не могу получить значения (например: name), зная их адрес. Пыталась ->>
console.log(response[0][0]);

но ничего не получается.
3)У .json-файла что-то не так с кодировкой. Пыталась поменять её в .txt, но особых изменений не произошло. Возможно, из-за этого что-то не работает. Браузер выдаёт ошибку: "not well-formed". Пример:
{"_id":707860,"name":"Hurzuf","country":"UA","coord":{"lon":34.283333,"lat":44.549999}}
{"_id":519188,"name":"Novinki","country":"RU","coord":{"lon":37.666668,"lat":55.683334}}
{"_id":1283378,"name":"Gorkhā","country":"NP","coord":{"lon":84.633331,"lat":28}}
{"_id":1270260,"name":"State of Haryāna","country":"IN","coord":{"lon":76,"lat":29}}
{"_id":708546,"name":"Holubynka","country":"UA","coord":{"lon":33.900002,"lat":44.599998}}
{"_id":1283710,"name":"Bāgmatī Zone","country":"NP","coord":{"lon":85.416664,"lat":28}}
{"_id":529334,"name":"Mar’ina Roshcha","country":"RU","coord":{"lon":37.611111,"lat":55.796391}}

Остальной код
function get(url) {
  return new Promise(function(resolve, reject) {
    var req = new XMLHttpRequest();
    req.open('GET', url);

    req.onload = function() {
      if (req.status == 200) {
        resolve(req.response);
      }
      else {
        reject(Error(req.statusText));
      }
    };
    req.onerror = function() {
      reject(Error("Сетевая ошибка"));
    };
    req.send();
  });
}

get('cityList.json').then(function(response) {
  console.log(response); //All .json-file content
  console.log(response.indexOf("Hurzuf")); //Result -> 22
}, function(error) {
  console.error("Не удалось выполнить!", error);
});
Ответить с цитированием