2012-08-01 122 views
0

我遇到問題。我有一個json代碼如下。 我想解析它們,但得到一個錯誤: SyntaxError:JSON.parse:意外字符 我不知道錯誤在哪裏。有人會幫忙嗎?SyntaxError:JSON.parse:意外字符

我的js代碼:

function retreive() { 
    var userInfo = new Array(); 
    userInfo[0] = $("#contactId").val(); 
    userInfo[1] = $("#pw").val(); 
    var cId = $.ajax({ 
    url: "server.php", 
    type: "POST", 
data: {phpData : userInfo}, 
    datatype: "json", 
success:function(msg) { 
    responseJson = JSON.parse(msg.responseText); 
var outputHtml = ""; 
    for (var i=0; i<responseJSON.user.mary.length; i++) { 
outputHtml += responseJSON.user.mary[i].sender[i].sendDate + 
", " + responseJSON.user.mary[i].sender[i].time + 
", " + responseJSON.user.mary[i].sender[i].timezone + 
", " + responseJSON.user.mary[i].sender[i].message + "<br/>"} 
divMessage = document.getElementById("message"); 
    divMessage.innerHTML = outputHtml; 
} 
}); 

}

我的PHP代碼:

$data = '{ 
    "user" : 
    [ 
     { 
    "mary" : 
     [ 
     { 
      "sender1" : 
     [ 
       { 
       "sendDate"  : "2012-01-13", 
       "time"  : "15:00:21", 
       "timezone" : "Asia/Hong_Kong", 
       "message" : "hi" 
      }, 
      { 
       "sendDate"  : "2012-01-18", 
       "time"  : "16:00:01", 
       "timezone" : "Asia/Hong_Kong", 
      "message" : "how are you" 
       }, 
       { 
       "sendDate"  : "2012-01-21", 
       "time"  : "14:31:42", 
       "timezone" : "Asia/Hong_Kong", 
      "message" : "good" 
      } 
     ], 
      "sender2" : 
     [ 
      { 
       "sendDate"  : "2012-01-14", 
       "time"  : "09:01:25", 
       "timezone" : "Asia/Hong_Kong", 
       "message" : "good morning" 
      }, 
       { 
       "sendDate"  : "2012-01-14", 
       "time"  : "09:03:41", 
      "timezone" : "Asia/Hong_Kong", 
       "message" : "where are you" 
      }, 
      { 
       "sendDate"  : "2012-01-14", 
       "time"  : "09:05:42", 
       "timezone" : "Asia/Hong_Kong", 
       "message" : "me too" 
      } 
      ], 
     } 
     ],  
    "peter" : 
     [ 
     { 
      "sender1" : 
      [   
       { 
       "sendDate"  : "2012-01-13", 
       "time"  : "10:44:28", 
      "timezone" : "Asia/Hong_Kong", 
       "message" : "hey man" 
      }, 
      { 
       "sendDate"  : "2012-01-13", 
       "time"  : "10:46:11", 
       "timezone" : "Asia/Hong_Kong", 
       "message" : "what are you doing" 
       }, 
       { 
       "sendDate"  : "2012-01-13", 
       "time"  : "10:48:33", 
       "timezone" : "Asia/Hong_Kong", 
       "message" : "nice" 
      } 
     ], 
      "sender3" : 
      [ 
       { 
       "sendDate"  : "2012-01-18", 
       "time"  : "14:23:58", 
      "timezone" : "Asia/Hong_Kong", 
       "message" : "Had you send the file to me" 
       }, 
      { 
       "sendDate"  : "2012-01-18", 
       "time"  : "15:01:39", 
      "timezone" : "Asia/Hong_Kong", 
       "message" : "i have not receive yet" 
      }, 
       { 
       "sendDate"  : "2012-01-19", 
       "time"  : "09:08:32", 
       "timezone" : "Asia/Hong_Kong", 
       "message" : "received" 
      }, 
     ], 
     } 
     ], 
     } 
    ], 
}'; 
echo $data; 
+1

太多',單曲... – DaveRandom 2012-08-01 12:42:18

+2

@Art,也請從我們不要尖叫.. :) – epoch 2012-08-01 12:43:12

+1

尾隨逗號並不總是支持... – Vishal 2012-08-01 12:44:55

回答

8

嗯,就像錯誤說,你的JSON是無效的。

http://jsonlint.com/

構建JSON手動是一個非常糟糕的主意。構建起來要困難得多,而且你容易解析錯誤。相反,以編程方式將數據構建爲數組或對象,然後使用json_encode()

+0

啊,你打我:) – epoch 2012-08-01 12:42:16

+3

...這次:) – Utkanos 2012-08-01 12:42:29

2

JSON Lint是你的朋友,用它來查找你的json中的潛在錯誤。

 
Parse error on line 45: 
...     }   ], 
----------------------^ 
Expecting 'STRING'