请你的帮助,我的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);
}
请咨询
答案 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
。