@danylokiz

Как парсить массив json в 2 разных массива?

У меня есть массив json и мне нужно его парсить в 2 разных массива. Вот как он выглядит:
"United Arab Emirates" : "AED",
        "Afghanistan" : "AFN",
        "Albania" : "ALL",
        "Armenia" : "AMD",
        "Netherlands Antilles" : "ANG",
        "Angola" : "AOA",
        "Argentina" : "ARS",
        "Australia" : "AUD",

Могу ли я как-то его парсить чтобы у меня было только это значение "United Arab Emirates"?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 1
@danylokiz Автор вопроса
Создаеться 2 массива еще и делается через append().
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
При парсинге приведённого JSON получится не массив, а объект. Пары ключ: значение.

Если нужны только ключи, есть метод Object.keys(), который вернёт массив из ключей:
var s = '{"United Arab Emirates":"AED","Afghanistan":"AFN","Albania":"ALL","Armenia":"AMD","Netherlands Antilles":"ANG","Angola":"AOA","Argentina":"ARS","Australia":"AUD"}';
var data = JSON.parse(s);
var countries = Object.keys(data); 

// United Arab Emirates,Afghanistan,Albania,Armenia,Netherlands Antilles,Angola,Argentina,Australia


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

Но есть вариант прямо при парсинге обрабатывать данные, передав вторым параметром функцию.
var data = JSON.parse(s, function(k,v){
  return typeof v === "object" ? Object.keys(v) : v;
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы