Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Leggere file json con più righe

    Buonasera a tutti,
    ho un file json con diverse righe cominciano tutte con "{" e finiscono con "}".
    tramite questa foreach:
    codice:
    $varcont=1;
    // Preparo un array vuoto
    $data = array();
    // Leggo il file in righe
    $lines = file("C:\Users\XXX\Desktop\json\XXX_mod.json");
    // Ciclo le righe
    foreach ($lines as $line) {
      // Leggo il JSON della riga
       $json = json_decode($line);
       echo $varcont++;
       echo "<br>";
       echo "<br>"; 
       $data[] = $json; 
       }

    Riesco a passare tutte le righe, lo so perchè faccio stampare a video il numero di foreach e so quante sono le righe.
    Poi con questa IF nel foreach controllo se il json è valido ed con una seconda foreach ed estraggo i dati riga per riga:
    codice:
      // Se il JSON è valido...
      if ($json) {
        // Aggiungo il dato all'array
        $data[] = $json;
        echo "<br>";
        echo $var_Number++;
        echo "<br>";
      }
      foreach ($data as $data){
        $id = $data->id;
        $full_name = $data->full_name;
        $first_name = $data->first_name;
       }
    Il problema è che finchè è la prima riga non ci sono problemi, la legge tranquillamente, appena però va per salvare i dati del json nuovamente nelle variabile della seconda foreach mi da questo errore:


    codice:
    Fatal error: Uncaught Error: Cannot use object of type stdClass as array in C:\xampp\htdocs\PHP7\Linkedin_DB.php:166 Stack trace: #0 {main} thrown in C:\xampp\htdocs\PHP7\Linkedin_DB.php on line 166

    La riga 166 è la seguente


    codice:
    $data[] = $json;

    Da cosa può dipendere??
    Grazie

  2. #2
    foreach ($data as $data){

    Usi la stessa variabile....

    foreach ($data as $currentData){

  3. #3
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    foreach ($data as $data){

    Usi la stessa variabile....

    foreach ($data as $currentData){

    Scrivendo come mi hai detto tu mi legge neanche la prima e la seconda riga, infatti mi stampa a video "$varcont" a 2, la riga mi dice subito

    Warning: Attempt to read property "id" on array in C:\xampp\htdocs\PHP7\XXX.php on line 177

    Warning: Attempt to read property "full_name" on array in C:\xampp\htdocs\PHP7\
    XXX.php on line 178

    Warning: Attempt to read property "first_name" on array in C:\xampp\htdocs\PHP7\
    XXX.php on line 179

  4. #4
    Vabbè....

    Codice PHP:
     foreach ($data as $currentData){    $id $currentData->id;    $full_name $currentData->full_name;    $first_name $currentData->first_name;   } 
    Non ho idea a cosa ti serva questo foreach() visto che alla fine l'unica cosa che fa è assegnare alle tre variabili i relativi valori dell'ultimo elemento dell'array $data.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.