我的ajax功能:
function fetchData(varUrl, varFunc, varData) {
if (varData == undefined) varData = "";
var options = {
type: "POST",
url: varUrl,
data: varData,
contentType: "application/json;charset=utf-8",
dataType: "json",
timeout: 8000,
cache: false,
beforeSend: ShowLoading(),
success: varFunc,
complete: HideLoading(),
error: function (x, t, m) {
if (t === "timeout") {
alert("got timeout");
} else {
alert(t+"\r\n\r\n"+m);
}
}
};
//execute the ajax call and get a response
var request = $.ajax(options);
}
function funcA(data){
$.each(data, function (i, item) {...}
}
function funcB(data){
$.each(data, function (i, item) {...}
}
C#代码:
public ActionResult AjaxA()
{
try
{
using (var db = new MvcContext())
{
var history = from h in db.Histories.Where(h => h.Id == 2)
return this.Json(history.ToList());
}
}
catch(Exception)
{
return this.Json("");
}
}
public ActionResult AjaxB()
{
var history = new List<MyDataType>();
history.Add( new MyData(...));
...
history.Add( new MyData(...));
return this.Json(history);
}
1)如果我使用fetchData(“AjaxA”,funcA)来获取数据,那就没关系
2)如果我使用fetchData(“AjaxB”,funcB)获取数据,则失败并获得错误
JSON.parse:意外的字符错误
但在这种情况下,firebug也可以获得良好的json数据。
json数据[{“x”:39,“y”:115.5,“数据”:16.743013706957576},{“x”:39.5,“y”:115.5,“数据”:12.353 109643128887}] < / p>
答案 0 :(得分:1)
Parse error on line 10:
... "Data": 12.353109643128887 }
-----------------------^
Expecting '}', ',', ']'
在这里,我已经在http://jsonlint.com/
上验证了JSON当我在文本编辑器上复制JSON时,会将几个字符转换为?
,请检查一下。它看起来像编码问题。
[{"x":39,"y":115.5,"Data":16.743013706957576},{"x":39.5,"y":115.5,"Data":12.353??109643128887}]