Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Leggere JSON by INDEX

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    655

    Leggere JSON by INDEX

    Ciao a tutti,

    nella mia servlet leggo un file Excel e per ogni colonna del file creo un JSONArray con
    array.add(j, colonna.get(j)); dove colonna è un ArrayList. Poi lo inserisco nell'oggetto JSONObject con put("colonna"+i,array);

    Il problema è che io non so a priori quante sono le colonne, pertanto in lettura nella chiamata Ajax non so come ciclare per leggere tutti gli elementi.

    In sostanza la json che restituisco è strutturata come una tabella, che però non riesco a leggere perché non so come accedervi, dato che il nome delle colonne è parametrizzato.

    E' possibile accedervi tramite indice?






  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da melmar20 Visualizza il messaggio
    nella mia servlet leggo un file Excel e per ogni colonna del file creo un JSONArray con array.add(j, colonna.get(j)); dove colonna è un ArrayList. Poi lo inserisco nell'oggetto JSONObject con put("colonna"+i,array);

    E' possibile accedervi tramite indice?
    Perché per ogni colonna usi un array??

    Se vuoi che un JSON rappresenti una "tabella" di dati, un possibile JSON è:

    codice:
    [
        [
            "aaa",
            123,
            "bbb"
        ],
        [
            "ccc",
            456,
            "ddd"
        ]
    ]

    Ovvero, il JSON è un array che contiene N array, dove ogni sotto-array è una "riga" che contiene M dati.
    Lato Javascript un JSON [ ... ] diventa un array Javascript e quindi SAI il numero di elementi.

    Nulla vieta di cambiare un po' la struttura e anticipare il numero di colonne tramite qualche "metadato" in più nel JSON.

    Quindi: PRIMA pensa al JSON, poi pensa a generarlo lato Java e poi a gestirlo lato client.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    655
    Non ho completamente afferrato il concetto
    Mi spiego, parto da un vettore String [] colonna; che valorizzo con i dati della mia colonna Excel, poi dove lo inserisco?
    In che struttura posso inserirlo?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da melmar20 Visualizza il messaggio
    Non ho completamente afferrato il concetto
    L'ho detto prima: un array principale (per le righe) che contiene N array, uno per ciascuna riga con i dati delle colonne.
    Precisa anche quale API usi lato Java (la org.json.simple ?)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    655
    Dunque ho fatto in questo modo, ho creato un array String[][] foglio = new String[righe][colonne].

    utilizzando net.sf.json.JSON poi utilizzo il metodo .put(foglio), quando lo ricevo tramite Ajax ho un errore e non riesco ad elaborarlo

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Con la net.sf.json si tratta di mettere N JSONArray (che hanno M valori) dentro 1 JSONArray, sempre per l'esempio citato prima.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    655
    Perfetto!! Grazie mille!

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.