• User Newbie

    Json annidati e push in un array

    Ciao a tutti,
    dato un file json

    
    {
      "news": [
        {
        "titolo":"Che bella giornata",
        "autore":"Mario Rossi",
        "immagini":[
         {
           "immagine":"1.jpg"
         },
         {
          "immagine":"2.jpg"
         },
         ..n..
        ]
        },
        {
        "titolo":"News 2",
        "autore":"Luca Bianchi",
        "immagini":[
         {
           "immagine":"11.jpg"
         },
         {
          "immagine":"22.jpg"
         },
         ..n..
        ]
        }
     ]
    }
    
    

    Il risultato che vorrei ottenere è un array di questo genere:

    
    Che bella giornata|Mario Rossi|1.jpg|2.jpg|..n..,News2,Luca Bianchi,11.jpg|22.jpg|..n..
    
    

    Come posso fare tenendo conto che devo fare un ciclo for solo per le immagini e che avrò almeno altri 3 nodi separati oltre le immagini? (es. tags e categorie)

    Grazie!


    ? massimux 2 Risposte
  • @dani833

    <html lang="it">
    <head>
      <meta charset="utf-8">
      <title>JSON</title>
    </head>
    <body>
    <h1>JSON</h1>
    <div id="demo"></div>
    <script type="text/javascript" src="data.js"></script>
    </body>
    </html>
    
    // Storing data:
    const myjsondata = [
    	{
    		id: 23, 
    		titolo: "Tramonti",
    		autore:"Mario",
    		immagini: [
    			{ img: "img1.jpg"},
    			{ img: "img2.jpg"}
    		]
    	},
    	{
    		id: 57, 
    		titolo: "Viaggi",
    		autore:"Paolo",
    		immagini: [
    			{ img: "img3.jpg"},
    			{ img: "img4.jpg"},
    			{ img: "img5.jpg"}
    		]
    	}
    ];
    
    
    const myObj = myjsondata;
    console.table(myObj[1].immagini);
    
    document.getElementById("demo").innerHTML = `
    <h1>TOTALE POST ${myObj.length}</h1>
    ${myObj.map((post,index)=>{
    	return `
    	<div>ID: ${post.id}</div>
    	<div>TITOLO: ${post.titolo}</div>
    	<div>AUTORE: ${post.autore}</div>
    	<div>IMMAGINI: ${myObj[index].immagini.map((myimg, n) => {return `${myimg.img}`})}
    	</div>
    	<hr>
    	`
    }).join('')}
    `;
    
    

  • Moderatore

    @dani833 ha detto in Json annidati e push in un array:

    Che bella giornata|Mario Rossi|1.jpg|2.jpg|..n..,News2,Luca Bianchi,11.jpg|22.jpg|..n..

    mi spiegheresti meglio cosa ti serve? devi migrare un dizionario json in un vettore?