Y
Y
Yes2019-09-15 18:29:53
JavaScript
Yes, 2019-09-15 18:29:53

How to convert JSON array to JavaScript array?

There is a JSON file like this

format:

[
  {
    "Код объекта": 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"
  }
]


Inside the function, I try to read it and convert it into a JavaScript array:
$.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);
        }
    });

That is, this code can only work with one JSON element. How can I make it convert everything?
I need to get a JavaScript array like this:
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"],
    ];

Answer the question

In order to leave comments, you need to log in

1 answer(s)
0
0xD34F, 2019-09-15
@volkihar

const newData = JSON.parse(data).map(Object.values);

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question