Jquery issue with getJSON
Jquery issue with getJSON
我的问题是一个javascript问题,我试图用Jquery的$.getJson函数解析一个Json文件,当我把它们放在一个变量中时,我注意到它需要比我想象的更多的对象,这里的代码JS:
$.getJSON(
url,
function(data) {
var content = '<h1>Applications</h1>';
content += '<ul>';
for (var pos in data){
var app = data[pos];
content += '<li>'+app.name+'</li>';
}
content += '</ul>';
$('div.apps').html(content);
}
这里是json文件:
[
{
"name": "apidocs",
"staging": {
"model": "rack",
"stack": "ruby18"
}
,
{
"name": "apidocs2",
"staging": {
"model": "rack",
"stack": "php53"
}
,
{
"name": "apidocs3",
"staging": {
"model": "rack",
"stack": "java17"
}
]
因此,在我的html页面中,我在globality中有6个对象,而不是3个。最后3个标记是"未定义的",但我只喜欢json文件中的标记,因为firefox不接受未定义的标记。
for ( var i = 0; i < data.length; i++ ) {
var app = data[ i ];
content += '<li>'+app.name+'</li>';
}
AVOIDfor..in
循环。
for (var pos in data){
用通常的代替
for (var i=0; i<data.length; i++){ //use as data[i]
如果您正在使用。。在循环中,在使用data.hasOwnProperty(..)
之前一定要使用它。否则,您一定会得到比预期更多的对象。它们实际上是data
继承的其他属性。
更正JSON,您有太多的打开标记。
更正的JSON>>
另外,请更正for循环。使用var count = 0; count < data.length; count++
由于您使用的是jQuery,请使用它完美的$.each
函数。
$.each( data, function( d ) {
content += '<li>' + d.name + '</li>';
});
相关文章:
- Fighting with FRP
- issue with FB.Event.subscribe
- 如何将getJson的响应保存在全局变量中
- geolocation-marker.js conflict with markerclusterer.js
- Angular 2.0 with JavaScript or TypeScript?
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- WebComponentsJS with IE10
- 指令的模板必须只有一个根元素:With restrict E&替换true
- 使用本地文件而不是$.getJSON
- timeago.js with datatable and PHP
- Ajax and Json with Rails
- errors with Javascript try catch
- jQuery Deferred/Promises with many getJSON
- Jquery issue with getJSON
- jQuery Mobile getJSON get data with var
- 美元.getJSON with for循环,仅在调试时工作
- Showing loader.gif with getJSON
- getJSON async with get - jquery
- Parse getJson with variable
- ajaxComplete with getJSON causing loop