2012-01-16 107 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 2012-01-16 10:16:58

+1

在您的JsonCallBack()中使用try/catch来查看有什么问题。 – craftsman 2012-01-16 10:19:34

+1

或者您可以尝试在响应中使用'。.get()'然后使用'JSON.parse()'。这会告诉你JSON是否有错误。 – Jivings 2012-01-16 10:22:23

回答

1

您的JSON无效。使用JSLint来检查您的JSON是否有效。 JSLint说: 错误: 第1行字符问题74:预期的'}'与第1行的'{'匹配,而是看到'TAB'。位于第1行的字符79

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

问题:预期 '}' 匹配 '{' 从第1行,而是看见 ':'。

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

问题在第1行字符80:预期'(结束)',而是看到'管理员'。

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

JSON:不好。

+0

改为使用[JSONLint](http://jsonlint.com/)。有效的JavaScript并不总是有效的JSON。 – 2012-01-16 10:57:34