Javascript 为什么此代码会发出警报;“未定义”;

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">

下面提到的是我的源代码,我只是从外部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>

获取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转换为字符串。

remove
json.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'
谢谢,它解决了我的问题