2012-07-20 28 views
3

我有一個JS(data.js)與數據文件作爲

var Content = { 
    Page1: { 
     Tiles: [ 
     { "id": "1", 
      "className": "home-test-class", 
      "tileType": "widget", 
      "tileColor": "red", 
      "Bookmark": : { 
       "Icon": "iconset", 
       "Class": "dummytext", 
       "Content": "Dummy Content", 
       "URL": "" 
      }, 
      "Tile": false, 
      "SmallWidget": false, 
      "Widget": false 
     }, 
     { 
     "id": "1", 
      "className": "title-class", 
      "tileType": "widget", 
      "tileColor": "red", 
      "Bookmark": false, 
      "Tile": false, 
      "SmallWidget": false, 
      "Widget": false 
     }, 
     ] 
    } 
} 

我已經創建了一個INIT方法要消耗該數據

Init = function() { 
     $.ajax({ 
      url: 'scripts/data.js', 
      dataType: "json", 
      contentType: 'application/json; charset=utf-8' 
     }).done(function (data) { 
      $.doTimeout(1000, function() { 
       console.log(data); 
       LoadViewData(data); 
      }); 

     }).fail(function (request, error) { 
      //Handle Failures here. 
      alert('Error' + error); 
     }); 
     ko.applyBindings(this); 
    }, 

它給了我一個JsonParse錯誤。

我正在使用敲除來將數據綁定到UI。當我使用Fiddler和檢查響應,它說的「選擇的響應不包含VAID JSON文本

請讓我知道如何解決它。

回答

4

這是因爲你返回一個JavaScript文件,而不是JSON數據。這是沒有意義以這種方式使用的JavaScript文件。

如果你改變了你的文件,以只是包含一個JSON字符串(下面的例子),並假設你$.ajax()通話剩下的沒有問題,請注意,proper JSON字符串將所有名稱都包含在雙引號中。另外,如果您通過運行JSON 10,你會發現它有一些問題(我已經在示例中解決了它們)。

{ 
    "Page1": { 
     "Tiles": [ 
      { 
       "id": "1", 
       "className": "home-test-class", 
       "tileType": "widget", 
       "tileColor": "red", 
       "Bookmark": { 
        "Icon": "iconset", 
        "Class": "dummytext", 
        "Content": "Dummy Content", 
        "URL": "" 
       }, 
       "Tile": false, 
       "SmallWidget": false, 
       "Widget": false 
      }, 
      { 
       "id": "1", 
       "className": "title-class", 
       "tileType": "widget", 
       "tileColor": "red", 
       "Bookmark": false, 
       "Tile": false, 
       "SmallWidget": false, 
       "Widget": false 
      } 
     ] 
    } 
} 
+1

感謝洛特,爲您的答案..這種方式晶瑩剔透,非常有幫助。 – Shubh 2012-07-20 08:31:35