Boas
Estou com uma dificuldade. Tenho um JSON com array, atributos e atributos com array (complexo) e ele tem alguns valores de pedidos e nesses pedidos tem um atributo Produtos que é um array de objetos (com 3 atributos (sku, quantidade e preço_unitario).
Preciso ler esse JSON (já consegui com parse), depois percorrer ele atras de um certo pedido (também já consegui) quando acho o pedido, dentro dele tenho de ler os produtos, passar para um array javascript, depois carregar o Pedido e os produtos dentro de um novo JSON (ainda não fiz devido ao problema a seguir).
O PROBLEMA: Eu consigo ler o JSON atras do Pedido (comparando dentro de um for) mas depois eu não estou conseguindo, através deste pedido, ler os produtos que tem nele. E como esse atributo Produtos é um array, não consigo ler.
Eu fiz algumas coisas e preciso de ajuda.
Fato: não posso usar JQuery, node ou outro frame .Tem de ser com javascript puro e mais. Preciso usar um for aninhado (ou algo assim) para pelo menos ler esses valores.
Segue os códigos:
index.html
<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Ler JSON</title>
<script type="text/javascript" src="arrei.json"></script>
<script type="text/javascript" src="script2.js"></script>
</head>
<body onload="lerJSON3()">
</body>
</html>
arrei.json
arrei =`[
{
"Pedido":5643234,
"nome_cliente":"Adeilson Denaison Dorevato",
"Produtos":[
{
"sku":"COR-4325",
"quantidade":3,
"preco_unitario":124
},
{
"sku":"COR-1000",
"quantidade":1,
"preco_unitario":199.99
}
]
},
{
"Pedido":5643235,
"nome_cliente":"Francisco Meira",
"Produtos":[
{
"sku":"TES-4315",
"quantidade":2,
"preco_unitario":19.89
}
]
},
{
"Pedido":5643236,
"nome_cliente":"Julio Simonete Nagal",
"Produtos":[
{
"sku":"SAX-0121",
"quantidade":2,
"preco_unitario":750.03
},
{
"sku":"COR-1000",
"quantidade":2,
"preco_unitario":199.99
}
]
},
{
"Pedido":5643237,
"nome_cliente":"Adeilson Denaison Dorevato",
"Produtos":[
]
},
{
"Pedido":5643238,
"nome_cliente":"Uóxinton Roseira",
"Produtos":[
{
"sku":"CAB-4001",
"quantidade":4,
"preco_unitario":95.2
},
{
"sku":"BRA-0087",
"quantidade":20,
"preco_unitario":9.99
},
{
"sku":"SAX-0121",
"quantidade":2,
"preco_unitario":750.03
},
{
"sku":"COR-1000",
"quantidade":2,
"preco_unitario":199.99
}
]
},
{
"Pedido":5643239,
"nome_cliente":"Estive Em Austin",
"Produtos":[
{
"sku":"COR-4325",
"quantidade":3,
"preco_unitario":124
}
]
}
]`;
script2.js
function lerJSON3() {
var dados = JSON.parse(arrei);
var pedido = 5643238;
var obj = [];
var obj2 = [];
for (var i = 0; i < dados.length; i++){
obj = dados[i].Pedido;
if(obj == pedido){
document.write("Pedido selecionado: "+obj);
}
//ATE AQUI VAI OK. DAQUI NÃO LE OS PRODUTOS DENTRO DO PEDIDO BUSCADO
for (var j = 0; j < obj.length; j++){
obj2 = obj[i][j].Produtos;
document.write("Produtos: "+obj2);
}
//var obj1 = dados[i].nome_cliente;
/*document.write("Pedido: "+obj);
document.write("<br>");
document.write("Nome: "+obj1+"<br><br>");*/
console.log(obj);
}
}
Eu sou iniciante javascript, e sei que tem varias outras formas de fazer isso, mas para que eu consiga entender, gostaria de tentar assim. Desde já obrigado.