1

请帮我修复这个 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
                }
            });

如何显示名字?});

4

2 回答 2

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);

            }
        });
于 2013-03-07T13:23:43.447 回答
-1

'在 JSON 中无效,请使用"改用 +#

这应该有效:

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

来自 json.org:

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

于 2013-03-07T12:53:23.667 回答