未捕获的TypeError:无法读取未定义的属性"0"

pta*_*mzz 1 javascript jquery

我正在使用jQuery进行ajax调用,如下所示.

$.ajax({
    type: "POST",
    url: "proc.php",
    dataType: 'json',
    data: dataString,
    cache: false,
    success: function(data){
        alert(data.vote[0].line);    //Where error shows
    }
});
Run Code Online (Sandbox Code Playgroud)

php页面返回的echo json_encode($string);

"{ 'vote' : [{ 'line' : 'newline1', 'up' : '0', 'down' : '1'}, { 'line' : 'newline2', 'up' : '4', 'down' : '1'} ]}"

当我运行它时,会出现错误

Uncaught TypeError: Cannot read property '0' of undefined 在上面的ajax调用评论中

谁能帮我指出我做错了哪里?

更新:

变量$string生成如下

    $comma = ",";
    $success = mysql_query($query, $connection);
    while($row = mysql_fetch_array($success)){
            $voteUp = $row['voteup'];
            $voteDwn = $row['votedwn'];

            $vote .= $comma . "{ 'line' : '{$row['entryid']}', 'up' : '{$voteUp}', 'down' : '{$voteDwn}'";
            $comma = ",";
        }
    $string = "{ 'vote' : [" . $vote . "]}";
    echo json_encode($string);
Run Code Online (Sandbox Code Playgroud)

Tho*_*nga 5

不使用PHP编写"jsoned"字符串,而是使用数组.json_encode()会做神奇的事

$return = array();

$success = mysql_query($query, $connection);
while ($row = mysql_fetch_array($success)) {
    $return['vote'][] = array(
        'line' => $row['entryid'],
        'up'   => $row['voteup'],
        'down' => $row['votedown'],
    );
}

echo json_encode($return);
Run Code Online (Sandbox Code Playgroud)