Jquery Can';返回JSON中的t引用键

Jquery Can';返回JSON中的t引用键,jquery,Jquery,我正在从web服务器返回一些JSON,但是我无法引用任何键 {"voteid":110.0,"message":"Your request was processed.","success":true} Alerting response.message/voteid alerts未定义 alert(response.voteid); 警告完整字符串工作正常:alert(response)但这不好,因为我想单独引用这些键。我的最终目标是从JSON中获取voteid键并将其附加到锚点,锚点也不

我正在从web服务器返回一些JSON,但是我无法引用任何键

{"voteid":110.0,"message":"Your request was processed.","success":true}
Alerting response.message/voteid alerts
未定义

alert(response.voteid);
警告完整字符串工作正常:
alert(response)但这不好,因为我想单独引用这些键。我的最终目标是从JSON中获取voteid键并将其附加到锚点,锚点也不起作用——使用完整字符串或仅使用一个键:

success: function(response) { $(".fav").data("voteid", response.voteid) }
<a class="fav" data-voteid="">
success:function(response){$(“.fav”).data(“voteid”,response.voteid)}
顺便说一句,我不知道为什么在voteid的末尾有一个0。我以字符串形式返回数字

编辑:通过将数据类型设置为JSON进行修复,但是,数据不会附加到锚的data voteid属性


EDIT让它通过使用.attr而不是.data来附加id——非常感谢大家

当您希望将JSON作为对象返回时,您可能会将其作为字符串返回。请尝试以下操作:

var响应对象=评估(响应)

警报(responseObject.voteId)


然后用谷歌搜索为什么eval不是一个好主意,以及如何解决这个问题。

当你想把JSON作为一个对象返回时,你可能会把它作为一个字符串返回。请尝试以下操作:

var响应对象=评估(响应)

警报(responseObject.voteId)


然后用谷歌搜索为什么eval不是一个好主意以及如何解决这个问题。

您已经排除了代码中的一些关键部分,但我猜您还没有为您的请求设置
数据类型:'json'

或者您可以手动调用
$.parseJSON

success: function(response) { 
    var parsed = $.parseJSON( response );
    $("fav").data("voteid", parsed.voteid);
}

记住,JSON是文本。

您已经排除了代码中的一些关键部分,但我猜您还没有为您的请求设置
数据类型:'JSON'

或者您可以手动调用
$.parseJSON

success: function(response) { 
    var parsed = $.parseJSON( response );
    $("fav").data("voteid", parsed.voteid);
}


记住,JSON是文本。

在ajax调用中是否将数据类型指定为JSON?它可能会以字符串形式返回JSON,这将不允许您访问密钥。如果指定JSON,jquery将把字符串转换成对象

在ajax调用中是否将数据类型指定为JSON?它可能会以字符串形式返回JSON,这将不允许您访问密钥。如果您指定JSON,jquery将把字符串转换成一个对象

,就像上面所说的那样,使用名为“id”的浮点字段感觉是错误的。但是,我不知道为什么会发生这种情况。我正在返回一个字符串。我不知道这是从哪里来的@赵:JavaScript没有整数。JSON也是如此<代码>110.0
似乎是一个奇怪的选择@T.J.克劳德:不,但我愿意打赌服务器端语言会。@cHao:我也是。:-)正如我所说的,结尾的
.0
看起来确实很奇怪。正如我所说的,使用名为“id”的浮点字段感觉是错误的。赵,我不知道为什么会发生这种情况。我正在返回一个字符串。我不知道这是从哪里来的@赵:JavaScript没有整数。JSON也是如此<代码>110.0似乎是一个奇怪的选择@T.J.克劳德:不,但我愿意打赌服务器端语言会。@cHao:我也是。:-)正如我所说,最后的
.0
看起来确实很奇怪。
eval
几乎不应该被使用,包括“解析”JSON。这很简单,但非常危险。是“script”而不是“json”打破了它:/——但该值不会附加到acnhor的data-voteid属性中
eval
几乎不应该被使用,包括“解析”JSON。这很简单,但非常危险。是“script”而不是“json”打破了它:/——但该值不会附加到acnhor的data-voteid属性中!是“脚本”变为“json”修复了它,duhh。。。。但它仍然不会附加到锚中的数据voteid=“”@梅尔,@patrick dw:更好的做法是完全关闭
数据类型,让服务器返回正确的内容类型。这是“脚本”改为“json”修复的,duhh。。。。但它仍然不会附加到锚中的数据voteid=“”@梅尔,@patrick dw:最好完全关闭
dataType
,让服务器返回正确的内容类型。