Visualizzazione risultati 1 fino 5 di 5
Like Tree1Likes
  • 1 Post By dreadnaut

Discussione: fetch json

  1. #1
    magrenzo non è connesso Utente Blog
    Data registrazione
    18-03-2022
    Messaggi
    3

    Predefinito fetch json

    Ciao a tutti, vi chiedo un aiuto, premetto che ho iniziato da poco ad utilizzare javascript, per cui chiedo venia in anticipo per le stupidate che dico e che dirò, detto questo vi chiedo una spiegazione, ho necessità di iterare in un file json come quello che vedete sotto; per ovvi motivi ho tagliato le informazioni contenute, e, a partire dalla chiave nodi, dove sono presenti le stesse chiavi con valori diversi, ho necessità di recuperare il loro valore di alcuni campi, (come se dovessi fare una select)per gestirli successivamente, mi areno perché riesco a fetchare il file json recuperare tutti i dati ma non riesco a recuperare quelli che mi interessano e selezionare gli stessi sull'intera colonna. Potete gentilmente darmi due dritte per cortesia?
    Grazie in anticipo a tutti.

    Codice:
    {
    	"name1" : "B0421",
    	"time1" : " 12:00",
    	"time2" : "UTC + 0",
    	"wat"   : 2.53,
    	"ins" : "1899",
    	"mon" : "",
    	"mit" : "",
    	"centro" : "899",
    	"l" : 0.000,
    	"lo" : 0.000,
    	"nodi" : [
    		{
    			"c" : 0,
    			"d" : 24,
    			"da" : 0.60771735492944,
    			"di" : -0.30007102648331,
    			"df" : 0.67776323625377,
    			"cN" : 0.60771735492944,
    			"cE" : -0.30007102648331,
    			"ct" : 0.67776323625377,
    			"dt" : null,
    			"cvrt" : null,
    			"dih" : 333.72134115113181,
    			"cuh" : 333.72134115113181,
    			"te" : 40.30000000000000
    		},
    		... 
    ]
    Ultima modifica di dreadnaut : 12-01-2023 alle ore 01.44.53 Motivo: + tag [code] per il codice

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Per lavorare su un array, potresti usare map() e filter().

    Metti che hai già recuperato i dati contenuti nel JSON...
    Codice:
    const risposta = await fetch('https://.../x.json')
    const dati = await risposta.json()
    Puoi lavorare su ciascuno dei "nodi" con map(), ad esempio estraendo alcuni dei campi
    Codice:
    const parametri = dati.nodi
      .map(nodo => {
        ampiezza: nodo.da,
        insipienza: nodo.di,
        formaggio: nodo.df,
      ])
    
    console.log(parametri)
    Se ti interessa filtrarli in qualche modo, concatena filter()
    Codice:
    const parametri = dati.nodi
      .filter(nodo => nodo.d > 20)
      .map(nodo => ... )
    
    console.log(parametri)
    Ultima modifica di dreadnaut : 12-01-2023 alle ore 02.17.21
    darbula likes this.

  3. #3
    magrenzo non è connesso Utente Blog
    Data registrazione
    18-03-2022
    Messaggi
    3

    Predefinito

    Avevo provato map, ma da come lo hai scritto tu mi rendo contro di aver scritto una caz.. di codice. Grazie! Provo le tue indicazioni, ti posso ridisturbare nel caso?
    Grazie molte intanto

  4. #4
    magrenzo non è connesso Utente Blog
    Data registrazione
    18-03-2022
    Messaggi
    3

    Predefinito

    Perdonami ma questa parte qui non mi è chiara.
    Codice:
    .map(nodo => {
        ampiezza: nodo.da,
        insipienza: nodo.di,
        formaggio: nodo.df,
    cioè per capirci da ampiezza : nodo.da,
    Grazie ancora
    Ultima modifica di dreadnaut : 12-01-2023 alle ore 20.29.49 Motivo: + tag [code] per il codice

  5. #5
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    map() prende come parametro una funzione. Nel mio esempio sopra, è una funzione che riceve un "nodo", e restituisce un nuovo oggetto che contiene solo tre campi. Potrebbe essere scritto anche così:
    Codice:
    function trasforma(nodo) {
      return {
        ampiezza: nodo.da,
        insipienza: nodo.di,
        formaggio: nodo.df,
      }
    }
    
    const nuovo_array = nodi.map(trasforma)
    Prendendo il "nodo" del tuo esempio
    Codice:
    const nodo = {
      "c" : 0,
      "d" : 24,
      "da" : 0.60771735492944,
      "di" : -0.30007102648331,
      "df" : 0.67776323625377,
      "cN" : 0.60771735492944,
      "cE" : -0.30007102648331,
      "ct" : 0.67776323625377,
      "dt" : null,
      "cvrt" : null,
      "dih" : 333.72134115113181,
      "cuh" : 333.72134115113181,
      "te" : 40.30000000000000
    }
    
    console.log(trasforma(nodo));
    Mostrerebbe nella console javascript
    Codice:
    {
      "ampiezza" : 0.60771735492944,
      "insipienza" : -0.30007102648331,
      "formaggio" : 0.67776323625377,
    }
    Non sapendo cosa siano i "nodi" con cui lavori, ho dato ai campi dei nomi a caso


    Anche filter() prende come parametro una funzione, ma questa dovrebbe restituire true o false. Se il risultato è true, l'elemento viene restituito, se è false, viene filtrato ed ignorato.
    Ultima modifica di dreadnaut : 12-01-2023 alle ore 20.39.36

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •