2012-01-16 8 views
1

以下の内容のJSファイルを作成しました。Jqueryを使用してJSONを読み取る

{ "Root":{"APPLICATION":"TestMenu", 
      "SUBROOT":["ADMIN","Seller","Buyer"] 
     "TAB":"ADMIN":"Home","ADMIN":"LiveAuction","ADMIN":"Master","ADMIN":"PostAuction"] 
        "SUBTAB":[ 
          {"APPLICATION":"TestMenu","SUBROOT":"ADMIN","TAB":"HOME","CHILD":"HOME","URL":"\Default.aspx"}, 
           {"APPLICATION":"TestMenu","SUBROOT":"ADMIN","TAB":"LiveAuction","CHILD":"","URL":"#"}, 
           {"APPLICATION":"TestMenu","SUBROOT":"ADMIN","TAB":"LiveAuction","CHILD":"AuctionCatalog","URL":"\AuctionCatalog.aspx"}, 
           {"APPLICATION":"TestMenu","SUBROOT":"ADMIN","TAB":"LiveAuction","CHILD":"BidBook","URL":"\BidBook.aspx"}, 
           {"APPLICATION":"TestMenu","SUBROOT":"ADMIN","TAB":"LiveAuction","CHILD":"SampleRequest","URL":"\SampleRequest.aspx"} 
          ] 
      } 
    } 

私はこのJSファイルを次のコードで呼び出しています。

$.getJSON("js/TestMenu.js", {}, function (json) { JsonCallBack(json); }); 
    function JsonCallBack(json) { 
     $.each(json.results, function (i, tweet) { 
      alert("JSON Data: " + json.Root); 
     }); 
    } 

今私はJSONを単一のオブジェクトに私が取得することができたが、私はそのJSONを取得しておりませんことを望みます。

ファイアウブを実行すると、応答が同じであることがわかります。なぜこれは動作していないのですか?

+2

jsonLintからJSONを検証しようとしましたが、有効なJSON(http://jsonlint.com/) – fcalderan

+1

ではないと思われます。JsonCallBack()でtry/catchを使用して問題の原因を確認してください。 – craftsman

+1

また、あなたの応答に '$ .get()'と 'JSON.parse()'を使ってみることもできます。これにより、JSONにエラーがあるかどうかがわかります。 – Jivings

答えて

1

JSONが無効です。 JSONが有効かどうかを確認するには、JSLintを使用してください。 JSLintは次のように言っています: エラー: 問題が1行目の文字74: '}'が1行目の '{'と一致し、代わりに 'TAB'が見えます。

{ "Root":{"APPLICATION":"TestMenu", "SUBROOT":["ADMIN","Seller","Buyer"] "TAB... 

問題1行目の文字79: '}'が1行目から '{'と一致し、代わりに ''が見えます。

{ "Root":{"APPLICATION":"TestMenu", "SUBROOT":["ADMIN","Seller","Buyer"] "TAB... 

問題が1行目の文字80: '(終了)'が予想され、代わりに 'ADMIN'が見えます。

{ "Root":{"APPLICATION":"TestMenu", "SUBROOT":["ADMIN","Seller","Buyer"] "TAB... 

JSON:悪い。

+0

代わりに[JSONLint](http://jsonlint.com/)を使用してください。有効なJavaScriptが常に有効なわけではありません。 –

関連する問題