jquery什么是要解析的正确json对象

时间:2013-03-07 12:50:05

标签: jquery asp.net json

请帮我解决这个json对象。我被困在这里,无法弄明白。

我得到一个json对象(但我不确定它是否正确)。我正在尝试4种方式来显示json的结果,但没有任何效果。请帮我找一下我做错了什么

这里是在webmethod c#

中创建的json对象
return_str += "{'id':'" + p_id + "','firstname':'" + firstname + "','lastname':'" + lastname + "','prefix':'" + prefix + "','gender':'" + gender + "','mobilephone':'" + mobilephone + "','email':'" + email + "','diplomano':'" + diplomano + "'}";

这里是试图获取json并显示结果的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);  // shows "[object Object]"
                    alert('2:' + data.id);  // shows "undefined"
                    alert('3:' + data.d);  // shows json string
                    var json = $.parseJSON(data); 
                    alert('4:' + json.id);  // doesnt show the alert box, I think It throws and error
                }
            });

如何显示名字?             });

2 个答案:

答案 0 :(得分:1)

当您使用网络服务时,您必须转到data.d

$('#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(data.d.id);

            }
        });

正确的方法是这个

  $('#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) {
               data=$.parseJSON(data.d);
                alert(data.id);

            }
        });

答案 1 :(得分:-1)

'在JSON中无效,请使用"代替+#/ p>

这应该有效:

return_str += "{\"id\":\"" + p_id + "\",\"firstname\":\"" + firstname + "\",\"lastname\":\"" + lastname + "\",\"prefix\":\"" + prefix + "\",\"gender\":\"" + gender + "\",\"mobilephone\":\"" + mobilephone + "\",\"email\":\"" + email + "\",\"diplomano\":\"" + diplomano + "\"}";

来自json.org:

  

值可以是双引号中的字符串,也可以是数字,或者是真或   false或null,或对象或数组。这些结构可以   嵌套。