具有这种结构的Json数据:
Title_day_hourminsec([
{"data":"x", "type":"y"},
{"data":"x", "type":"y"},
{"data":"x", "type":"y"},
{"data":"x", "type":"y"},
{"data":"x", "type":"y"},
{"data":"x", "type":"y"},
]);
来自jquery getJSON的调用我无法获得文件的真实内容,只得到这是html输出:
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
这是我尝试获取json内容的javascript片段:
<script type="text/javascript">
$(document).ready(function(){
$.getJSON("myremotedata",
function(data){
var items = [];
$.each(data, function(key, val) {
items.push('<li id="' + key + '">' + val + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
});
});
</script>
我错过了什么?
答案 0 :(得分:6)
尝试修改每个循环,如:
$.each(data, function (key, val) {
items.push('<li id="' + key + '">' + val.data + ' ' + val.type + '</li>');
});
你得到[object Object]
因为在每个循环中,变量val
实际上是一个对象。您需要使用val.data
或val.type
之类的Javascript点对象表示法来获取每个对象的值。
答案 1 :(得分:0)
$。each()返回索引和该索引处的值。
$.each(data, function(index, value) {
// value contains {"data":"x", "type":"y"}
});
然后您可以使用value.data或value.type填充列表。