2013-07-02 147 views
0

我做一個簡單的GET使用jQuery像這樣jQuery的無法解析JSON

var jqxhr = $.get("http://localhost/path/list", function() { 
     alert("success"); 
    }, "json") 
    .done(function() { alert("second success"); }) 
    .fail(function(jqXHR, textStatus, errorThrown){ 
     console.dir(jqXHR); 
    } 
); 

的服務器狀態200我能夠解析它作爲一個有效的JSON像我能夠返回以下JSON在這裏做:http://www.freeformatter.com/json-formatter.html。但總是調用失敗方法。如果我將dataType更改爲「text」,則調用成功方法。所以我認爲jquery無法將響應解析爲有效的json。什麼可能是錯的?

{ 
    'root': { 
     'status': [ 
      { 
       'Entity': 'user', 
       'InstanceId': '1', 
       'ModifiedAt': 'null', 
       'ModifiedBy': 'null', 
       'CreatedAt': 'null', 
       'CreatedBy': '1', 
       'Status': 'approval', 
       'AssignedFor': 'null', 
       'AssignedTo': '1', 
       'PatternName': 'approval' 
      }, 
      { 
       'Entity': 'user', 
       'InstanceId': '2', 
       'ModifiedAt': 'null', 
       'ModifiedBy': 'null', 
       'CreatedAt': 'null', 
       'CreatedBy': '1', 
       'Status': 'start', 
       'AssignedFor': 'null', 
       'AssignedTo': '1', 
       'PatternName': 'input' 
      } 
     ], 
     'count': 2 
    } 
} 
+4

這是無效的JSON。字符串和鍵必須在**雙**引號中。嘗試http://jsonlint.org/。您鏈接到的頁面上的信息(JavaScript允許使用單引號)不正確(可能他們會將對象文字與JSON混淆,誰知道呢)。 –

+1

無效的JSON。檢查json http://jsonlint.com/ – som

+0

dughh!沒有意識到工作到深夜!我應該記得使用http://jsonlint.org/。非常感謝! – user1076371

回答

0

你用什麼方式序列化了JSON?並將單引號轉換爲雙引號

{ 
"root": { 
    "status": [ 
     { 
      "Entity": "user", 
      "InstanceId": "1", 
      "ModifiedAt": "null", 
      "ModifiedBy": "null", 
      "CreatedAt": "null", 
      "CreatedBy": "1", 
      "Status": "approval", 
      "AssignedFor": "null", 
      "AssignedTo": "1", 
      "PatternName": "approval" 
     }, 
     { 
      "Entity": "user", 
      "InstanceId": "2", 
      "ModifiedAt": "null", 
      "ModifiedBy": "null", 
      "CreatedAt": "null", 
      "CreatedBy": "1", 
      "Status": "start", 
      "AssignedFor": "null", 
      "AssignedTo": "1", 
      "PatternName": "input" 
     } 
    ], 
    "count": "2" 
}}