为什么此代码警告“未定义”

时间:2018-05-22 11:30:56

标签: 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">

    <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。究竟是什么问题。

1 个答案:

答案 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转换为字符串。

相关问题