Разделение данных JSON после того, как данные в VueJS

Разделение данных JSON после того, как данные в VueJS

06.03.2020 07:46:12 Просмотров 11 Источник

Как разделить данные в JSON, если есть массив за массивом? Это мой формат JSON

{
    "status": "true",
    "error": "",
    "data": [
        {
            "id": 1,
            "sections": [
                {
                    "section_id": 1,
                    "position": []
                }
            ]
        }
     ]
}

Итак, я использую AXIOS . Этот код Аксиос

const url = '/api/v1/form/'
            axios
                .get(url)
                .then(response => {
                    this.listing = response.data.data;
                }) 

Как вызвать раздел, используя этот response.data.data.sections ? Я пытаюсь, но ошибка не определена. Пожалуйста помогите мне спасибо

У вопроса есть решение - Посмотреть?

Ответы - Разделение данных JSON после того, как данные в VueJS / Split data JSON after data in VueJS

José Bardales

06.03.2020 08:50:21

Попробовать это:

const url = '/api/v1/form/'
axios
    .get(url)
    .then(response => {
        this.listing = response.data;
        console.log(this.listing.data) // <-------
    }) 
Является ответом!
Allan Banis

06.03.2020 11:06:15

response.data.data[0].sections

data-это массив в соответствии с вашим json, поэтому вы не можете напрямую вызывать разделы, которые вам придется повторять или выбирать экземпляр в массиве.

следующий код должен печатать все идентификаторы разделов / / непроверенный код

const url = '/api/v1/form/'
            axios
                .get(url)
                .then(response => {
                    response.data.data.foreach((listing)=>{
                        console.log(listing.sections.section_id)
                    })
                }) 

Если у вас всегда будет только одна запись под data или вы хотите получить доступ только к 1-й записи data, вы можете использовать response.data.data[0].sections, но это плохой способ получить доступ к нему, потому что если данные пусты, это приведет к ошибке . Если дело в том, что у вас есть только одна запись под data, вы должны просто изменить свой json, чтобы он был

{
"status": "true",
"error": "",
"data":
    {
        "id": 1,
        "sections": [
            {
                "section_id": 1,
                "position": []
            }
        ]
    }

}

и тогда вы можете получить к нему прямой доступ response.data.data.sections, но пока это массив, вам придется рассматривать его как таковой.

Итерация по разделам и позициям [согласно комментариям]:

 const url = '/api/v1/form/'
            axios
                .get(url)
                .then(response => {
                    response.data.data.foreach((listing)=>{ //#this will get you each listing(parent object that contains sections array)
                        listing.sections.foreach((section)=>{//# this will get you each section(parent object that contains position array)
                           section.position.foreach((el)=>{//# this will get you each elment in the position array as `el`
                               console.log(el)
                           })
                        })

                    })
                }) 
Закрыть X