我正在尝试使用以下功能创建一个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>
答案 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))
;