我正在使用以下代码来获取一些json格式的数据:
$.ajax({
type: "GET",
url: "MyService.svc/GetSomeData",
dataType: "text",
success: function (data, textStatus) {
alert("Test: " + data.toString());
},
error: function (xhr, textStatus, errorThrown) {
alert("Error: " + (errorThrown ? errorThrown : xhr.status));
}
});
数据已成功返回此调用,如下所示:
{"d":"test data"}
我的猜测是我可以按如下方式访问数据:
var myData = data["d"];
然而,这似乎总是返回“未定义”。为了获得单个数据串“测试数据”,我缺少什么?
答案 0 :(得分:8)
将dataType: "text",
更改为dataType: "json",
您遇到的问题是,虽然返回的字符串实际上是有效的JSON,但它将作为字符串返回到您的成功函数。字符串没有名为d
的属性。你需要做的是将JSON转换为javascript对象 - 如果你告诉它你正在期待JSON,jQuery会为你做什么。
答案 1 :(得分:5)
如果您尝试data.d
会怎样?
答案 2 :(得分:0)
我认为Sean& Thiago是正确的:使用{dataType: "json"}
(在您的选项中为$ .ajax())并使用data.d
访问该值。