2013-07-30 11 views
6

Sto cercando di analizzare un file JSON che si trova sul mio computer. Voglio analizzarlo. Il file JSON ha questa struttura:Analizza file JSON locale con jQuery e Javascript

{ 
    "sites": { 
    "site": [ 
     { 
     "id": "01", 
     "name": "Sito 1", 
     "src": "localhost/root/coupon/sito1", 
     "expiryDate": "29 Ago 2013" 
     }, 
     { 
     "id": "02", 
     "name": "Sito 2", 
     "src": "localhost/root/coupon/sito2", 
     "expiryDate": "30 Ago 2013" 
     }, 
     { 
     "id": "Sito 3", 
     "name": "Sito 3", 
     "src": "localhost/root/coupon/sito2", 
     "expiryDate": "31 Ago 2013" 
     } 
    ] 
    } 
} 

Nel mio html ho importare la libreria jQuery e ho fatto una funzione che verrà caricata quando la pagina viene caricata. Il codice è qui sotto:

<!DOCTYPE html> 
<html lang="it"> 
    <head> 
     <meta charset="utf-8" /> 
     <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/> 
     <title>Lista coupon</title> 
     <script type="text/javascript" src="jquery-1.9.1.min.js"></script> 
     <script type="text/javascript" charset="utf-8"> 
      function loadJson() { 
       window.alert("Carico il contenuto del file JSON per popolare la lista"); 
       $(document).ready(function() 
        { 
         $.getJSON('data.json', function(json) { 
          console.log(json); 
         }); 
        }); 
       } 
     </script> 
    </head> 
    <body onload="loadJson();"> 
     <div id="header"> 
      <h1>Lista coupon salvati</h1> 
     </div> 
     <div id="content"> 
      <p>Di seguito trovi tutte le promozioni salvate</p> 

     </div> 
     <div id="footer"> 

     </div> 
    </body> 
</html> 

Ora che ho visto su console di Firebug che possa leggere correttamente il file JSON, ma non so come analizzare questo JSON. Ho cercato su google, ma ho trovato molti esempi che usano un JSON remoto. Puoi aiutarmi a capire come analizzare un file JSON locale? Grazie

PS: notare il sito che pubblico qui è fatto per browser mobile.

+0

getJson effettua una chiamata HTTP al ** server ** non al computer. Leggi la documentazione http://api.jquery.com/jQuery.getJSON/ – Liam

+0

fai un console.log sulla variabile 'obj' e controlla come è costruito. Ti farà capire come dovresti usarlo. – ninja

risposta

8

getJSON lo analizzerà per te.

Basta rimuovere la riga var obj = $.parseJSON(json); (poiché ciò stringa l'oggetto e tenta di analizzarlo come JSON (che non sarà)).

+0

Ok l'ho rimosso, ma ora come posso accedere all'oggetto? Ora voglio "catturare" la voce "nome" e "src" – lucgian84

+0

'json' è l'oggetto. Accedilo come qualsiasi altro. ('json.sites.etc') – Quentin

+0

quindi devo fare semplicemente json.name e json.src per ottenere il nome e il link? L'ho provato con un avviso, ma mi dice non definito ... – lucgian84

2

Non penso che sia necessario analizzare il json. Analizzerà automaticamente il json poiché stai usando $ .getJSON().

+2

usa json.sites.site [0] .src, json.sites.site [1] .src – Sharad

+0

Grazie anche a te !! – lucgian84

+0

Ora come posso mettere il valore di name e src in un array? È giusto usare $ .each? – lucgian84

Problemi correlati