0

我正在从 jquery 调用 webmethod 并获取 json 对象,但我无法解析和读取 json 对象。请帮我找出我做错了什么。我有 3 个 alert() 并且我在他们旁边放了评论他们显示的内容......

我的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 对象错了吗?我应该使用单引号吗?

谢谢你

4

3 回答 3

1

您有数组,使用索引并在数据中使用大括号来制作对象。

现场演示

将json字符串更改为

[{"id":"2","firstname":"arif"}]

使用数组索引索引器访问其元素

data.d[0].id
于 2013-03-07T12:27:26.453 回答
1

假设你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;}
}

那么您应该:success在客户端的 ajax 中执行此操作:

success: function (data) {
                    var jsonData =$.parseJSON(data);
                    alert('1:' + jsonData); // display [object Object]
                    alert('2:' + jsonData.d.firstname); // display undefined
                    alert('3:' + jsonData.d);             
     }
于 2013-03-07T12:44:44.727 回答
0

你只需要解析你的数据:

var result = jQuery.parseJSON(data.d);
alert(result[0].Id);
于 2013-03-07T12:43:25.767 回答