Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida formato JSON

No curso, aprendemos a consumir uma API de dados da seguinte forma

[
    {
        "nome": "Jéssica",
        "peso": 47,
        "altura": 1.54,
        "gordura": 17,
        "imc": 19.82
    },
    {
        "nome": "Flavio",
        "peso": 70,
        "altura": 1.7,
        "gordura": 17,
        "imc": 24.22
    }
]

Num projeto pessoal, me deparei com os dados da seguinte

{
  "teste": [               //dúvida aqui
    {
      "titulo": "João e maria",
      "preco": 49.90,
      "parcelas": {        //dúvida aqui
        "numero": 5,       //dúvida aqui
        "valor": 49.90     //dúvida aqui
      },
      "categoria": "infantil"
    }
}

Estou com dúvida no "teste" e em "parcelas".

Como faço para consumir estes dados neste formato com JavaScript, seguindo o modelo da aula?

Obrigado.

2 respostas

Sempre que você tem [] trata-se de um array e quando tem {} trata-se de um objeto. Neste caso o exemplo que passou tem um array "teste". O objeto deste array possui um objeto "parcelas". Porém acho que deve verificar melhor o seu projeto pessoal, pois existe um erro semântico. Não está sendo fechado o array. Para saber mais sobre JSON consultar em http://www.json.org/

solução!

Fala Emerson,

Tranquilo?

Dá uma olhada no código abaixo

var objeto = {
    "teste": [{
        "titulo": "João e maria",
        "preco": 49.90,
        "parcelas": {
            "numero": 5,
            "valor": 49.90
        },
        "categoria": "infantil"
    }]
}

console.log(objeto); //vai trazer o objeto como um todo

console.log(objeto.teste); //vai trazer o objeto teste

console.log(objeto.teste[0].titulo); //vai trazer o título, no caso "João e maria"

console.log(objeto.teste[0]["titulo"]); //também vai trazer o título, no caso "João e maria"

console.log(objeto.teste[0].parcelas); //vai trazer o objeto parcela do objeto teste

console.log(objeto.teste[0].parcelas.numero); //vai trazer o valor do campo numero, no caso 5

console.log(objeto.teste[0].parcelas.valor); //vai trazer o valor do campo valor, no caso 49.90