读取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
访问该值。