下面提到的是我的源代码,我只是从外部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">
<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>
当我只是警告a alert(a);
它总是提供原始数据但是当我尝试提醒类似a.display_name之类的东西时,它总是返回undefined。究竟是什么问题。
答案 0 :(得分:2)
dataType: '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转换为字符串。