json-Jquery在ajax调用中返回未定义的多个值

json-Jquery在ajax调用中返回未定义的多个值,json,jquery,Json,Jquery,我想从Ajax调用返回多个值。所以我根据这个页面修改了我的代码 'alert(data)'返回{“fullname”:“Joe”,“success”:“true”} 但是“alert(data.fullname)”返回未定义的。正确的值应为Joe 我错过什么了吗?非常感谢您的任何建议 AJAX\u GetFullName <System.Web.Services.WebMethod()> _ Public Shared Function AJAX_GetFullName(ByVal

我想从Ajax调用返回多个值。所以我根据这个页面修改了我的代码

'alert(data)'返回{“fullname”:“Joe”,“success”:“true”}

但是“alert(data.fullname)”返回未定义的。正确的值应为Joe

我错过什么了吗?非常感谢您的任何建议

AJAX\u GetFullName

<System.Web.Services.WebMethod()> _
Public Shared Function AJAX_GetFullName(ByVal userid As String) As Object

    Dim isValid As Boolean = False  'by default, user always not exist
    Dim strFullName As String = ""

    isValid = IsUserIDExist(userid, strFullName)
    If isValid Then
        Return "{'fullname': '" & strFullName & "', 'success': 'true' }"
    Else
        Return "{'fullname': '', 'success': 'false' }"
    End If

End Function
_
作为对象的公共共享函数AJAX_GetFullName(ByVal userid作为字符串)
默认情况下,Dim isValid为Boolean=False,用户始终不存在
Dim strFullName As String=“”
isValid=IsUserIDExist(userid,strFullName)
如果有效,那么
返回“{'fullname':'”&strFullName&','success':'true'}”
其他的
返回“{'fullname':'','success':'false'}”
如果结束
端函数
试试这个

$.ajax({
    type: "POST",
    contentType: "application/json;",
    url: "AJAX_custom_function.aspx/AJAX_GetFullName",
    data: '{"userid": "' + arguments.Value + '"}',
    async: false,
    success: function (data) {
        try {
            // convert single quote to double quotes
            var msg = data.replace(/'/g, "\"");
            msg = $.parseJSON(msg);
            alert(msg.fullname);
        } catch (e) {
            alert(e.Message);
        }
    },
    error:function (xhr, status, err){
        alert( "status=" + xhr.responseText + ", error=" + err );
    }

});
无需在
contentType
中指定
dataType
charset
,请尝试使用:

success: function(data) {
    if (typeof data == 'string')
    {
        data = jQuery.parseJSON(data);
    }
    alert(data.fullname);
}

要将字符串转换为Json对象,请在Ajax调用的success函数中使用Json.parse(data)函数。我希望这会有所帮助。

请向我展示您的
WebMethod
AJAX\u GetFullName
返回类型有问题。因为如果
WebMethod
正确,则警报(数据)应向
object对象发出警报。@ChristopheCVB数据类型为string@naveen您是对的,返回类型是string,这在两者之间是错误的,它为数据返回false。hasOwnProperty(“d”)感谢您的帮助。不知道为什么,我无法调用这些函数中的任何一个$.parseJSON jQuery.parseJSON JSON.parse调用上述任何函数后,警报将停止工作。真奇怪。我使用的是jQuery1.4.2。这有关系吗?请粘贴您的
AJAX\u GetFullName
methodEdited。请参考上面。你就是那个男人,问题解决了。我的错,我不知道是单引号导致了问题。在我运行这一行:data=JSON.parse(data)之后,警报停止工作already@Alfred:并非所有浏览器都支持JSON。您可能需要添加对的引用,因为您使用的是jQuery,所以使用
$要好得多。parseJSON
谢谢您的帮助。不知道为什么,我无法调用这些函数中的任何一个$.parseJSON jQuery.parseJSON JSON.parse调用上述任何函数后,警报将停止工作。真奇怪。我使用的是jQuery1.4.2。这有关系吗?奇怪:添加的版本:1.4.1-jQuery.parseJSON(json)
success: function(data) {
    if (typeof data == 'string')
    {
        data = jQuery.parseJSON(data);
    }
    alert(data.fullname);
}