Как получить массив из другого сайта?
Вот код который работает
var countries = JSON.parse( Get("https://restcountries.eu/rest/v2/all?fields=name")); console.log(countries);
я хочу брать массив отсюда
https://gist.githubusercontent.com/Lwdthe1/81818d30d23f012628aac1cdf672627d/raw/45dc8bee7b4fc349ec87931100e0f258bb59f8ea/usaCities.js
У меня почему то не получается, в чём различия этих массивов кто может объяснить?
Ответы (2 шт):
Как гласит MDN - js массив также валиден JSON, но:
JSON требует двойных кавычек, которые будут использоваться вокруг строк и имен свойств. Одиночные кавычки недействительны.
Даже одна неуместная запятая или двоеточие могут привести к сбою JSON-файла и не работать.
У Вас оба эти пункта в минусе. Кавычки одиночные и после последнего элемента массива стоит запятая
Проблема в том, что по второй ссылке - не JSON.
Для такого массива вам понадобится парсер, либо, если уверены в источнике, можно вычислить js массив с помощью eval:
const uri = 'https://gist.githubusercontent.com/Lwdthe1/81818d30d23f012628aac1cdf672627d/raw/45dc8bee7b4fc349ec87931100e0f258bb59f8ea/usaCities.js';
fetch(uri)
.then(res => res.text())
.then(res => eval(res))
.then(list => console.log(list))
На самом деле, это не опаснее/не безопаснее, чем обычное подключение такого скрипта через <script>