当您使用Chrome检查时,我会生成一个看起来像这样的物体:
当我尝试使用JSON.stringify对此对象进行字符串化时,我得到以下结果:
{
"results" : [{
"ID" : 1,
"NAME" : "Admin"
}, {
"ID" : 2,
"NAME" : "Standarduser"
}, {
"ID" : 3,
"NAME" : "Consultant"
}, {
"ID" : 4,
"NAME" : "Leergruppe"
}
]
}
由于某种原因,缺少所有嵌套节点。 我确信这是非常简单和随意的,但目前我根本无法找到我的错误。 非常感谢你的帮助!
编辑:JSFiddle如何创建JSON:http://jsfiddle.net/VJTaV/
答案 0 :(得分:4)
由于您的jsfiddle显示ajax调用,因此您可能已调用JSON.stringify()
before the ajax results are available。你需要将它放在成功回调中,以便在ajax完成后执行。
Chrome检查器会将属性显示为您在记录对象后对其进行修改,以后您可以展开并查看console.log
调用时尚未存在的新属性。< / p>
答案 1 :(得分:1)
如Bergi所述,您正在尝试对尚未加载的数据进行字符串化,因为$ .get调用是异步的。您可以将.done回调附加到每个回调,或者,如果您只想在所有请求完成时执行代码,请使用jQuery.when:
var jqXHRs = [];
$( data.results ).each(function( key, val ) {
var jqXHR = $.get( userDataUrl, "", function( res ) {
// ...
});
jqXHRs.push(jqXHR);
});
$.when.apply( $, jqXHRs ).done(function() {
console.log( val ); // will log all nested nodes
});