volkihar
@volkihar

Как конвертировать JSON массив в JavaScript массив?

Есть JSON файл такого
формата:

[
  {
    "Код объекта": 978,
    "Код теретории": 18,
    "Код программы":  13,
    "Наименование": "Что-то \"что-то там\", г.Москва - 9999",
    "Год": "1998-01-01T00:00:00"
  },
  {
    "Код объекта": 980,
    "Код теретории": 311,
    "Код программы": 358,
    "Наименование": "Что-то \"что-то там\", г.Москва - 5555",
    "Год": "2029-01-01T00:00:00"
  },
  {
    "Код объекта": 988,
    "Код теретории": 33,
    "Код программы": 1450,
    "Наименование": "Что-то \"что-то там\", г.Москва - 8888",
    "Год": "2153-01-01T00:00:00"
  }
]


Внутри функции я его пытаюсь прочитать и конвертировать в JavaScript массив:
$.get("path\\fullData.json", function (data) {
        try {
            var report = JSON.parse(data);
            var arr = [];
           
            //если так делать
            for (var x in report) {
                arr.push(report[x]);
            }// тогда ключи не убираются

           //сделал так
           for (var x in report[0]) {
                arr.push(report[0][x]);
            }//и только один объект нормально заполнился

            for (var i = 0; i < report.length; i++) { // так что-то страшное происходит
                for (var x in report[i]) {
                    arr.push(report[i][x]);
                }
            }
            
            console.log(arr);
           ////////////вот это///////////////////
            var json = '{"0":"1","1":"2","2":"3","3":"4"}';

            var parsed = JSON.parse(json);

            var arr2 = [];
            for (var c in parsed) {
                arr2.push(parsed[c]);
            }
            console.log(arr2);
            // вот это работает нормально
           
           
        } catch (e) {
            console.log(e);
        }
    });


То-есть, этот код может работать только с одним элементом JSON. А как сделать, чтобы он все конвертировал?

Мне нужно получить JavaScript массив такого формата:
var newData = [
        [978, 18, 13, "Что-то \"что-то там\", г.Москва - 9999", '1998-01-01T00:00:00'],
        [980, 311, 358, "Что-то \"что-то там\", г.Москва - 5555", "2029-01-01T00:00:00"],
        [988, 33, 1450, "Что-то \"что-то там\", г.Москва - 8888", "2153-01-01T00:00:00"],
    ];
  • Вопрос задан
  • 4611 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const newData = JSON.parse(data).map(Object.values);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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