使用JavaScript获取JSON响应并在网页上显示,测试JavaScript

时间:2013-07-28 21:47:29

标签: javascript jquery ajax json

我正在尝试使用以下功能创建一个JS应用程序:一个获取JSON文档并显示该文本的按钮。我正在阅读Elasticsearch教程,在我提供的网址上确实存在有效的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>

4 个答案:

答案 0 :(得分:17)

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

答案 1 :(得分:2)

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

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

alert(JSON.stringify(data));

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

答案 2 :(得分:0)

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

alert(data._type);

答案 3 :(得分:0)

简单!

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

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

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