Visualizzazione risultati 1 fino 3 di 3

Discussione: Dubbio su matrice memorizzate in un db sqlite

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito Dubbio su matrice memorizzate in un db sqlite

    Non saprei se la mia domanda è ovvia o si trotta di un problema del mio script, cmq ve la faccio uguale.

    Come mai, se in un db memorizzo, tramite la funzione json_encode(), una semplice array:

    Codice PHP:
    array("primo_elemento", "secondo_elemento")
    E recuperandola in un secondo momento me mi va tutto ok, mentre se memorizzo con lo stesso metodo una matrice:

    Codice PHP:
    array (
    "primo" => array("primo_elemento"),
    "secondo" => array("secondo_elemento")
    )
    Quest'ultima, dopo un successivo recupero dal db, mi viene considerata un'oggetto cosi formato:

    Codice PHP:
    Object ( [primo] => Array ("primo_elemento") [secondo] => Array ("secondo_elemento" ) )
    Ansi che formarmi una matrice cosi formata:

    Codice PHP:
    Array("primo" => Array("primo_elemento"), "secondo" => Array("secondo_elemento"))
    Non so se avete ben capito, ma è un'errore dei miei script o è proprio che json trasforma le matrici in oggetto?

    Sevenjeak
    Software developer and much more

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

    Predefinito

    In php esistono sia array associativi che oggetti, ma in javascript non c'è differenza fra un dizionario (qualcosa che associa un'etichetta ad un valore) ed un oggetto.

    Quando salvi un array php in JSON, questo diventa un dizionario javascript, e converti un dizionario javascript con json_decode(), di default ottieni un oggetto. Se avessi letto la documentazione di json_decode(), avresti scoperto c'è un parametro apposta per scegliere fra oggetti e array.

    Se non ti serve JSON in generale, puoi mantenere le strutture del php usando i normali serialize() e unserialize().
    Ultima modifica di dreadnaut : 30-06-2012 alle ore 17.16.42

  3. #3
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Si si, conoscevo le funzioni serializze() e unserializze() del php, utilizzo json perché posso usare anche il javascript.

    Per la documentazione ufficiale di json_decode() non ci avevo fatto mai caso, sarà che non me la cavo molto bene in inglese, cmq ora cercherò di vederla meglio, visto che fino ad ora lo semplicemente usata solo per convertirla passandoli solo un parametro.

    Cmq grazie per avermi risolto il dubbio, in effetti ci avevo pensato al fatto che era proprio json che si comportava cosi, ma non ne ero del tutto sicuro, grazie ancora.

    Sevenjeak
    Software developer and much more

Regole di scrittura

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