Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Dimensione jsonObject

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    84

    Dimensione jsonObject

    Ciao a tutti,
    devo creare una tabella dinamica in cui inserire i dati prelevati da un oggetto json. Ho il seguente codice e ho necessità di avere il numero di record restituiti per fare in modo che la tabella sia generata correttamente. Il count risulta valere sempre 2. Come mai?

    codice:
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            
            var jsonObject = eval('(' + xmlhttp.responseText + ')');
            
            var count=Object.keys(jsonObject).length;
            alert('count2 vale '+count);
    
            var table = document.getElementById("report");
             var tbody = table.getElementsByTagName('tbody')[0];
             var colonne = table.getElementsByTagName('th').length;    
             ...

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Il count risulta valere sempre 2. Come mai?
    Ciao, in linea di massima non ci sono particolari errori.
    Non credi sia importante farci vedere come è strutturato quell'oggetto?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    84
    {"type":"perso_atti","values":[{"CF":"hygt45rfd56tgyui","costo_orario":20,"data": "2015-01-07","id_Attivita":1,"numeroOre":4},{"CF":"hygt45rf d56tgyui","costo_orario":20,"data":"2015-01-12","id_Attivita":1,"numeroOre":4},{"CF":"hygt45rf d56tgyui","costo_orario":20,"data":"2015-01-14","id_Attivita":1,"numeroOre":4},{"CF":"hygt45rf d56tgyui","costo_orario":20,"data":"2015-01-16","id_Attivita":1,"numeroOre":2},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-02","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-03","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-05","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-06","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-09","id_Attivita":2,"numeroOre":5},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-10","id_Attivita":2,"numeroOre":5},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-11","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-12","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-13","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-16","id_Attivita":2,"numeroOre":5},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-18","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-19","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-20","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-23","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-24","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-25","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-26","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-02-27","id_Attivita":2,"numeroOre":3},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-03-10","id_Attivita":2,"numeroOre":4},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-03-11","id_Attivita":2,"numeroOre":5},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-03-13","id_Attivita":2,"numeroOre":5},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-03-16","id_Attivita":2,"numeroOre":5},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-03-17","id_Attivita":2,"numeroOre":4},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-03-18","id_Attivita":2,"numeroOre":5},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-03-19","id_Attivita":2,"numeroOre":4},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-03-20","id_Attivita":2,"numeroOre":5},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-03-23","id_Attivita":2,"numeroOre":5},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-03-24","id_Attivita":2,"numeroOre":4},{"CF":"hygt45rf d56tgyui","costo_orario":15,"data":"2015-03-25","id_Attivita":2,"numeroOre":5},

    ...
    ...
    ....
    ......

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    84
    Risolto!
    var count = Object.keys(jsonObject.values).length;

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Quote Originariamente inviata da user1989 Visualizza il messaggio
    Risolto!
    var count = Object.keys(jsonObject.values).length;
    Bene.
    E' chiaro che di per sé l'oggetto principale ha solo due proprietà (type e values), ecco perché count ti dava sempre 2.

    Giusto per chiarezza:
    dal momento che values è un array (non un oggetto) puoi usare direttamente length senza interpellare il metodo keys(). Infatti quel metodo ti sarebbe servito se tu avessi dovuto contare le proprietà di un oggetto, ma è ridondante se devi contare semplicemente gli elementi di un array (anche se il risultato è lo stesso).
    codice:
    var count = jsonObject.values.length;
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.