Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500

    lettura file Json con php

    Ciao a tutti ragazzi, sto imparando un pò ad usare i file json e php, e ho un file json così strutturato:
    example.json
    codice:
    {
    	"cane":{ 
    		"1":"nome cane",
    		"2":"nome cane"
    	},
    	"gatto":{ 
    		1:"nome gatto",
    		2:"nome gatto" 
    	}
    }
    e stavo cercando di leggerlo in php...però non riesco ad accedere alle variabili 1:nome cane per esempio!

    il pezzo di codice php che ho scritto per adesso è questo:
    codice:
    <?php
            
    	ob_start();
            include_once("example.json");
    	$mods = ob_get_clean();
            $modules = json_decode($mods);
    
    
    	if ( $modules == NULL ) print "errore\n";		
    	else print $modules->{'cane'};
    ?>
    la variabile $modules mi ritorna sempre null!! ci sarà qualcosa di sbagliato nell'impostazione del file json?

    se qualcuno riesce a darmi una mano lo ringrazio molto
    ciao ciao
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  2. #2
    Allora, prima di tutto quello non e' JSON valido: nell'oggetto "gatto" ci sono numeri non quotati.
    Poi fai un giro assurdo per leggere un file, invece di quel gioco con l'output buffering usa file_get_contents().
    Infine non puoi stampare $modules->{'cane'} direttamente perche' e' un oggetto e non una stringa.

  3. #3
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    prova così
    rinomina example.json come example.php
    poi modifica come segue

    Codice PHP:
    <?php
    $json
    ={
        
    "cane":{ 
            
    "1":"nome cane",
            
    "2":"nome cane"
        
    },
        
    "gatto":{ 
            
    "1":"nome gatto",
            
    "2":"nome gatto" 
        
    }
    }
    ?>
    Codice PHP:
    <?php
            
        ob_start
    ();
            include_once(
    "example.php");
        
    //$mods = ob_get_clean();
            
    $modules json_decode($json);

        if ( 
    $modules == NULL ) print "errore\n";        
        else print 
    "ok";
    ?>
    se invece non vuoi rinominare il file devi usare fopen e leggere il file non includerlo

  4. #4
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    Infine non puoi stampare $modules->{'cane'} direttamente perche' e' un oggetto e non una stringa.
    e quindi una volta che ottengo la variabile $modules coma faccio a sapere cosa c'è dentro??
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  5. #5

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    62
    Originariamente inviato da bstefano79
    Codice PHP:
    <?php
    $json
    ={
        
    "cane":{ 
            
    "1":"nome cane",
            
    "2":"nome cane"
        
    },
        
    "gatto":{ 
            
    "1":"nome gatto",
            
    "2":"nome gatto" 
        
    }
    }
    ?>
    Ma... Sarò nuovo al linguaggio, ma questa è sintassi PHP?

  7. #7
    Originariamente inviato da MaxArt
    Ma... Sarò nuovo al linguaggio, ma questa è sintassi PHP?
    No, e' PHP Parse error: syntax error, unexpected '{' in...

  8. #8
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    ho dato uno sguardo a questo link e ho visto che con la funzione print_r() dando come parametro $modules->{"cane"}->{"1"} effettivamente stampa "nome cane"....però stavo guardando qualche ciclo per poter ciclare su $modules....tipo per poter ciclare su "cane" e "gatto"!
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  9. #9
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    a me servirebbe in qualche modo di scorrere il file ma non leggendolo come un normale file di testo ma usandolo come se fosse una hash.
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  10. #10
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    ho trovato che riesco a ciclare sopra gli oggetti tramite il ciclo foreach(), però riesco a ciclare su "cane" o su "gatto" e facendo:
    codice:
    foreach( $modules->{"cane"} as $value ) {
               print $value;
    }
    in questo modo mi stampa i nomi dei cani...però non posso sapere se il valore della chiave qual è!!
    codice:
    {
    	"cane":{ 
    		"pastore-tedesco":"pippo",
    		"labrador":"pluto"
    	},
    	"gatto":{ 
    		1:"nome gatto",
    		2:"nome gatto" 
    	}
    }
    a me servirebbe un modo per sapere anche il valore delle chiavi "pastore-tedesco" e "labrador"!
    qualcuno che mi riesce a dare una mano?
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

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.