我从jquery调用webmethod并获取json对象,但我无法解析并读取json对象。请帮我找到我做错了什么。我有3个警报(),我正在他们旁边放置评论... ...
我的jquery代码就是这个
$('#btn_second').click(function () {
//$('#txt_isim_4').val('test arif');
$.ajax({
type: "POST",
url: "Registration.aspx/get_selected_professional",
data: "{'id':'2'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert('1:' + data); // display [object Object]
alert('2:' + data.d.firstname); // display undefined
alert('3:' + data.d); // display [{"id":"2","firstname":"arif"}]
}
});
});
但我想只显示“Arif”。我的json对象错了吗?我应该使用单引号吗?
谢谢
答案 0 :(得分:1)
你有数组,使用索引,并在数据中使用大括号来制作对象。
<强> Live Demo 强>
将json字符串更改为
[{"id":"2","firstname":"arif"}]
使用数组索引索引器访问其元素
data.d[0].id
答案 1 :(得分:0)
您只需要解析数据:
var result = jQuery.parseJSON(data.d);
alert(result[0].Id);
答案 2 :(得分:0)
假设您的webmethod
是这样的:
public string get_selected_professional(string id)
{
List<MyClass> requiredData= GetRequiredData(id);
//your required logic
//string requiredData= "[{\"id\":\"2\",\"firstname\":\"arif\"}]";
//return requiredData;
//or
return new JavascriptSerializer().Serialize(requiredData);
}
其中MyClass
是
public class MyClass
{
public int id {get;set;}
public string firstname{get;set;}
}
然后你应该在客户端的ajax :success
中执行此操作:
success: function (data) {
var jsonData =$.parseJSON(data);
alert('1:' + jsonData); // display [object Object]
alert('2:' + jsonData.d.firstname); // display undefined
alert('3:' + jsonData.d);
}