Javascript 为什么此代码会发出警报;“未定义”;
下面提到的是我的源代码,我只是从外部url获取json数据,我只是试图提醒数据所属的人的姓名。但它不起作用Javascript 为什么此代码会发出警报;“未定义”;,javascript,json,ajax,Javascript,Json,Ajax,下面提到的是我的源代码,我只是从外部url获取json数据,我只是试图提醒数据所属的人的姓名。但它不起作用 <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width">
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<title>Fetch json example</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$.ajax({
url: "https://api.stackexchange.com/2.2/users/4944823?order=desc&sort=reputation&site=stackoverflow",
type: 'GET',
dataType: 'json',
success: function(res) {
var a = (JSON.stringify(res.items[0]));
alert(a.display_name);
}
});
});
</script>
</body>
</html>
获取json示例
$(文档).ready(函数(){
$.ajax({
url:“https://api.stackexchange.com/2.2/users/4944823?order=desc&sort=reputation&site=stackoverflow",
键入:“GET”,
数据类型:“json”,
成功:功能(res){
var a=(JSON.stringify(res.items[0]);
警报(a.显示名称);
}
});
});
当我只是提醒a
警报(a)代码>它总是给出原始数据,但当我试图提醒像.display\u name或其他东西时,它总是返回未定义的数据。实际问题是什么。当数据类型:'json'
时,响应已经被解析,因此这应该可以工作:
$(document).ready(function(){
$.ajax({
url: "https://api.stackexchange.com/2.2/users/4944823?order=desc&sort=reputation&site=stackoverflow",
type: 'GET',
dataType: 'json',
success: function(res) {
alert(res.items[0].display_name);
}
});
});
如果需要将字符串解析为json,则应使用json.parse(string),json.stringify(json)用于将json转换为字符串。当数据类型:'json'
时,响应已被解析,因此这应该可以工作:
$(document).ready(function(){
$.ajax({
url: "https://api.stackexchange.com/2.2/users/4944823?order=desc&sort=reputation&site=stackoverflow",
type: 'GET',
dataType: 'json',
success: function(res) {
alert(res.items[0].display_name);
}
});
});
如果需要将字符串解析为json,则应使用json.parse(string),json.stringify(json)用于将json转换为字符串。removejson.stringify()
,如果您试图将json转换为JS对象,则不需要ITI使用json.parse
而不是json.stringify
@GabrielCarneiro,API已经返回了JSON,所以不需要解析,请注意数据类型:'JSON'
谢谢,它修复了我的问题移动了JSON.stringify()
,如果您试图将JSON转换为JS对象,则不需要它使用JSON.parse
而不是JSON.stringify
@GabrielCarneiro,API已经返回了JSON,所以JSON.parse
不是必需的,请注意dataType:'JSON'
谢谢,它解决了我的问题