Разделить данные JSON после данных в VueJS - PullRequest
0 голосов
/ 06 марта 2020

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 06 марта 2020

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)
                           })
                        })

                    })
                }) 
0 голосов
/ 06 марта 2020

Попробуйте это:

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