Javascript 未捕获的语法错误:意外的标记o-JSON.Parse

Javascript 未捕获的语法错误:意外的标记o-JSON.Parse,javascript,ajax,json,Javascript,Ajax,Json,我知道这个问题在这里已经被提过很多次了,但是我不能找出我代码中的错误。我收到此错误“未捕获的语法错误:意外标记o” 以下是我的ajax代码: $.ajax({ type: "POST", url: "json-http-server.aspx/GetDoctors", data: '', contentType: "application/json; charset=utf-8", dataType: "json", success: myFunc

我知道这个问题在这里已经被提过很多次了,但是我不能找出我代码中的错误。我收到此错误“未捕获的语法错误:意外标记o”

以下是我的ajax代码:

$.ajax({
    type: "POST",
    url: "json-http-server.aspx/GetDoctors",
    data: '',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: myFunction,
    failure: function (response) {
    alert("AJAX error");
}
});
下面是我的函数,它将解析返回的数据:

function myFunction(response) {
    var arr = JSON && JSON.parse(response) || $.parseJSON(response);
    var out = "";
    out += "<table border='1'>";
    out += "<tr><th>Title</th>";
    out += "<th>Name</th>";
    out += "<th>Gender</th>";
    out += "<th>Address</th>";
    out += "<th>Hospital</th></tr>";
    for (var i = 0; i < arr.length; i++) {
        out += "<tr>";
        out += "<td>";
        out += arr[i].Title;
        out += "</td>";
        out += "<td>";
        out += arr[i].Name;
        out += "</td>";
        out += "<td>";
        out += arr[i].Gender;
        out += "</td>";
        out += "<td>";
        out += arr[i].Address;
        out += "</td>";
        out += "<td>";
        out += arr[i].Hospital;
        out += "</td>";
        out += "</tr>";
    }
    out += "</table>";
    document.getElementById("OutputDiv").innerHTML = out;
}
在填充
response
之前,已经解析了JSON

(jQuery将在两种情况下执行此操作:如果您指定
数据类型:'json'
(您这样做),或者如果您没有指定数据类型并且服务器说响应是json(它应该这样做))

您正在(隐式地)将其转换为字符串(
“[object object]”“
),并尝试将其解析为JSON(它不是)


删除该行。

您的JSON数据无效,在
}
{
之间缺少逗号(

固定的:

'[{
    "Title":"Univ. Prof. Dr.",
    "Name":"John",
    "Gender":"Doe", 
    "Address":"Washington DC, USA",
    "Hospital":"Washington General Hospital"
  },
  {
    "Title":"Univ. Prof. Dr.",
    "Name":"Billy",
    "Gender":"Joe",
    "Address":"California, USA",
    "Hospital":"AKH Univ-Kl.f.Innere Med. II"
  },
  {
    "Title":"Univ. Prof. Dr.",
    "Name":"Alex",
    "Gender":"Haize",
    "Address":"Michigan, 2500, USA",
    "Hospital":"Rheuma-SKA Baden der SVA der gew. Wirtschaft"
}]'

您不需要解析响应;jQuery在“成功”之前就已经这样做了函数被调用。当您添加
数据类型
JSON时,jQuery会为您解析它。您再次解析它,这次解析一个对象并得到一个错误
数据:“”,
-空字符串不是有效的JSON,如果它不是真的,您不应该告诉服务器您的请求包含JSON。删除该行:
contentType:“application/json;charset=utf-8”
我删除了该行并替换为“response.d”,错误消失了,但它在所有列中都显示为“undefined”。@raurau-因为json中没有
d
属性,这并不奇怪。它不显示输出@Siguza。
 var arr = JSON && JSON.parse(response) || $.parseJSON(response);
'[{
    "Title":"Univ. Prof. Dr.",
    "Name":"John",
    "Gender":"Doe", 
    "Address":"Washington DC, USA",
    "Hospital":"Washington General Hospital"
  },
  {
    "Title":"Univ. Prof. Dr.",
    "Name":"Billy",
    "Gender":"Joe",
    "Address":"California, USA",
    "Hospital":"AKH Univ-Kl.f.Innere Med. II"
  },
  {
    "Title":"Univ. Prof. Dr.",
    "Name":"Alex",
    "Gender":"Haize",
    "Address":"Michigan, 2500, USA",
    "Hospital":"Rheuma-SKA Baden der SVA der gew. Wirtschaft"
}]'