Как получить массив из другого сайта?

Вот код который работает

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 шт):

Автор решения: fortavey

Как гласит MDN - js массив также валиден JSON, но:

  1. JSON требует двойных кавычек, которые будут использоваться вокруг строк и имен свойств. Одиночные кавычки недействительны.

  2. Даже одна неуместная запятая или двоеточие могут привести к сбою JSON-файла и не работать.

У Вас оба эти пункта в минусе. Кавычки одиночные и после последнего элемента массива стоит запятая

→ Ссылка
Автор решения: vp_arth

Проблема в том, что по второй ссылке - не 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>

→ Ссылка