【问题标题】:Using JavaScript to get JSON response and display on the webpage, testing JavaScript使用 JavaScript 获取 JSON 响应并显示在网页上,测试 JavaScript
【发布时间】:2013-07-28 14:32:17
【问题描述】:

我正在尝试创建一个具有以下功能的 JS 应用程序:一个获取 JSON 文档并显示该文本的按钮。我正在阅读 Elasticsearch 教程,在我提供的 url 上确实有有效的 JSON:

{"_index":"planet","_type":"hacker","_id":"xfSJlRT7RtWwdQDPwkIMWg","_version":1,"exists":true, "_source" : {"handle":"mark","hobbies":["rollerblading","hacking","coding"]}}

当使用下面的代码时...我收到一个警报

[object Object]

而不是带有完整 JSON 的警报。我打算采取下一步实际选择部分 JSON 的步骤,但我希望至少先查看完整文档...

有什么想法吗?提前谢谢!

<!DOCTYPE html>
<html lang="en">
<head><title>Demo</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>

<body>
  <input id="testbutton" type="button" value="Test" />
  <p id="results">results appended here: </p>

<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $("#testbutton").click(function() {
        $.ajax({
            url: 'http://localhost:9200/planet/hacker/xfSJlRT7RtWwdQDPwkIMWg',
            dataType: 'json',
            success: function(data) {
                $("#results").append('all good');
                alert(data);
            },
             error: function() {
                $("#results").append("error");
                alert('error');
            }
        });
    });
});
</script>
</body>
</html>

【问题讨论】:

标签: javascript jquery ajax json


【解决方案1】:

使用alert(JSON.stringify(data));

【讨论】:

    【解决方案2】:

    jQuery 尝试“最好地猜测”它接收到的数据格式,并为您解析它。

    这正是您所看到的。 jQuery 已经为您将 JSON 解析为一个对象。要查看 JSON 表示,您可以再次对数据进行字符串化;

    alert(JSON.stringify(data));
    

    ... 或者,您可以告诉 jQuery 首先不要解析响应,将 dataType: "string" 作为选项之一传递。 data 将成为 JSON 表示,您必须 JSON.parse(data) 将其转换为对象。

    【讨论】:

      【解决方案3】:

      您正在将 JSON 转换为 javascript 对象,您可以使用 . 操作符从该对象访问各个属性,例如

      alert(data._type);
      

      【讨论】:

        【解决方案4】:

        简单!

        alert() 在返回“[object Object]”的对象上调用.toString()

        使用console.log(data),右键单击并转到控制台(或按 F12)。

        或者像其他人一样做:alert(JSON.stringify(data));

        【讨论】:

          猜你喜欢
          • 2016-02-05
          • 1970-01-01
          • 1970-01-01
          • 2018-05-27
          • 2012-05-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-04
          相关资源
          最近更新 更多