2013-07-30 20 views
6

私のコンピュータにあるJSONファイルを解析しようとしています。私はそれを解析したい。 JSONファイルの構造は次のとおりです。jQueryとJavascriptを使用してローカルJSONファイルを解析します。

{ 
    "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" 
     } 
    ] 
    } 
} 

私のhtmlでは、jQueryライブラリをインポートして、ページが読み込まれるときに読み込む関数を作成しました。以下のコードは次のとおりです。

<!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> 

今、私はそれが正しくJSONファイルを読み込むことができますが、私は、このJSONを解析する方法がわからないFirebugのコンソール上で見ました。私はgoogleで検索しましたが、リモートJSONを使用するサンプルが多数見つかりました。ローカルのJSONファイルを解析する方法を理解できますか?私はそれがモバイルブラウザ用に作られている、ここに投稿するサイトに注意してください。 はあなた

PSありがとうございました。

+0

getJsonは**サーバー**へのHTTPコールをあなたのコンピュータに送信しません。 http://api.jquery.com/jQuery.getJSON/ – Liam

+0

の「obj」変数でconsole.logを実行し、そのビルド方法を確認してください。どのように使用すべきか理解してくれるでしょう。 – ninja

答えて

8

getJSONはあなたのためにそれを解析します。

var obj = $.parseJSON(json);行を削除するだけです(オブジェクトが文字列化され、JSONとして解析されます)。

+0

私はそれを削除しましたが、今どのようにオブジェクトにアクセスできますか?今私は "名前"と "src"のエントリを "キャプチャ"したい – lucgian84

+0

'json'はオブジェクトです。他のようにアクセスしてください。 ( 'json.sites.etc') – Quentin

+0

私は単純にjson.nameとjson.srcを使って名前とリンクを取得しましたか?私は警告でそれを試しましたが、私には定義されていません... – lucgian84

2

jsonを解析する必要はありません。 $ .getJSON()を使用しているので、jsonを自動的に解析します。

+2

json.sites.site [0] .src、json.sites.site [1] .src – Sharad

+0

ありがとうございます! – lucgian84

+0

ここで、nameとsrcの値を配列にどのように入れることができますか? $ .eachを使うのは正しいですか? – lucgian84

関連する問題