JSON无法在javascript ajax请求

时间:2015-12-10 08:44:57

标签: javascript php json ajax

请你的帮助,我的ajax请求有问题。我有返回文本数据,我想使用json_parse将其转换为JSON,但它不起作用

从ajax请求返回的数据如下所示:

data = "{"name":"ehab","mobile":"xxx"}{"name":"Hamza","mobile":"zzzz"}"

我想将此数据转换为json我使用以下ajax请求

 $.ajax({
                type: "POST",
                url: "getGroup.php",
                data: { "searchText" : number},
                 success: function(data)
                {
                data = JSON.parse(data);

                debugger;
                },
                error: function (error) {
                 debugger;
              }

如果我使用这种方式错误消息返回

Uncaught SyntaxError: Unexpected token {

我的php数组文件

$sql ="select * from recipients where `groupid`='$searchText'";

        $res = mysql_query($sql);
        $num = mysql_num_rows($res);
        $data='';
        if(mysql_num_rows($res)> 0) 
                    {
                    for($i=0;$i<mysql_num_rows($res);$i++) {
                    $row=mysql_fetch_assoc($res);


                    $output =  array('name'=>$row['rec_name'],
                 'mobile'=>$row['mobile_number']);

                    echo json_encode($output);
                    }

请咨询

1 个答案:

答案 0 :(得分:4)

JSON无效

{"name":"ehab","mobile":"xxx"}{"name":"Hamza","mobile":"zzzz"}
Here -------------------------^

你不能在顶层有两个对象。

您可以将其包装在[...]中并将条目与,分隔开来,使其成为数组:

[{"name":"ehab","mobile":"xxx"},{"name":"Hamza","mobile":"zzzz"}]

然后您可以像这样访问它:

console.log(data[0].name); // "ehab"
console.log(data[1].name); // "Hamza"

或使用循环,forEach

旁注:如果您的服务器返回正确识别的有效JSON,jQuery会在调用您的success函数之前为您解析它,因此您的代码中不需要JSON.parse