读取json数据返回jQuery

我正在使用以下代码来获取一些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"]; 

然而,这似乎总是返回“未定义”。 为了获得单个数据串“测试数据”,我缺少什么?

如果你尝试data.d会发生什么?

dataType: "text",更改为dataType: "json",

您遇到的问题是,虽然返回的字符串实际上是有效的JSON,但它将作为字符串返回到您的成功函数。 字符串没有名为d的属性。 你需要做的是将JSON转换为javascript对象 – 如果你告诉它你正在期待JSON,jQuery会为你做什么。

我认为Sean和Thiago都是正确的:使用{dataType: "json"} (在你的选项中为$ .ajax())并使用data.d访问该值。