Как формировать JSON?

339
12 марта 2017, 06:51

Есть массив строк произвольной длины, например ["12", "31", "3", "12"], назовём его temp.
Как можно его превратить в подобное представление:

"users": [
  {
    "id": temp[0]
  },
  {
    "id": temp[1]
  },
  {
    "id": temp[2]
  },
  {
    "id": temp[3]
  }
]

Кто знаком с такой задачей, помогите разобраться пожалуйста.

Answer 1

Можно воспользоваться методом Array.prototype.map.
Json.stringify кодирует JS массив/объект в JSON-строку.

let list = ["12", "31", "3", "12"].map(id => ({id})); 
 
console.log(JSON.stringify(list));

Транскрипция:

  • let - объявление переменной c блочной областью видимости
  • id => (...) - Стрелочная функция, почти аналог для function(id){return {id: id};}
  • {id} - Синтаксический сахар для {id: id}

var list = ["12", "31", "3", "12"].map(function(id) { 
  return {id: id}; 
}); 
 
var dest = {title: "Список пользователей"}; 
dest.users = list; 
console.log(JSON.stringify(dest));

Answer 2

var temp = ["12", "31", "3", "12"]; 
 
function convertToObjects(strings) { 
  var result = []; 
  for (var i = 0; i < strings.length; i++) 
    result.push({ id: strings[i] }); 
  return result; 
} 
 
var users = convertToObjects(temp); 
console.log(users);

READ ALSO
Uncaught TypeError: Cannot read property &#39;addEventListener&#39; of undefined

Uncaught TypeError: Cannot read property 'addEventListener' of undefined

Ребят, решил помочь другуТеперь сам маюсь с этим и не знаю, в чем проблема

296
Автовоспроизведение аудио в js

Автовоспроизведение аудио в js

У меня есть html код, где есть аудио в js, и мне бы хотелось реализовать случайный следующий трек и что бы 1 и тот же трек для раза подряд не выпадал,...

319
Скрыть блок с возможностью обращения к нему [требует правки]

Скрыть блок с возможностью обращения к нему [требует правки]

Есть блок с текстом и скрипт, который сохраняет текст в буфер обмена при нажатие на кнопкуКак убрать (скрыть) блок с текстом со страницы, но оставить...

277
Почему отладка прерывается?

Почему отладка прерывается?

Я пытаюсь вытащить из другого сайта нужные мне ссылки и засунуть их в массивВроде бы всё делаю правильно, но массив получается на выходе странный

282