JSON error: SyntaxError: JSON.解析:JSON数据第2行第1列的意外字符


JSON error : SyntaxError: JSON.parse: unexpected character at line 2 column 1 of the JSON data

这里是什么错误:

.done(function(data) {
                var json = JSON.parse( data );
                if(json['status'] === "success"){
                    //some processing
                }
                else {
                    alert( "error 2" );
                }
            })

我得到了错误信息:var json json .parse('('+data+')')

数据从PHP脚本返回:

/*...............*/
$sql->execute();
$i = 0;
while($result = $sql->fetch(PDO::FETCH_ASSOC){
    $response["affiliates"][i]["affiliate_name"] = $result["coupon_name"];
    $response["affiliates"][i]["affiliate_id"] = $result["coupon_id"];
    $i++;
}
$response["status"] = "success";
echo json_encode($response); 

查看JSON的规范(这里是易于理解的版本:http://json.org/)。没有地方说括号是有效的。例如,({"foo": true})永远不会解析。它可能是eval ed,因为它是有效的javascript,但javascript不是JSON。

因为这是错误的。

" (1) "(例如)不是一个有效的JSON字符串。你为什么要把这些父母都贴上去?

JSON格式只使用大括号和方括号。