Javascript处理JSON

这看起来很奇怪……

我有一些JSON ……

{"firstName":"David","lastName":"Smith","email":null,"id":0} 

但是当我尝试解析它并将其与…一起使用时

  $(document).ready(function() { var json = $.getJSON('userManagement/getUser'); $("p").text(json.firstName); });  This is the user management view Users : 

什么都没有出现,但如果我只做$(“p”)。text(json); 它告诉我它是一个对象,我可以看到JSON在firebug中是正确的,任何想法?

尝试:

  

在AJAX请求完成后,您必须使用json变量。

在此处了解有关AJAX JSON请求的更多信息: http : //api.jquery.com/jQuery.getJSON/

在此处了解有关常规AJAX请求的更多信息: http : //api.jquery.com/jQuery.ajax/

$.getJSON()函数只是一个围绕AJAX调用的包装器; 它不会返回由于AJAX调用而获得的JSON,而是返回一个jqXHR对象(感谢Mathletics澄清这一点)。

您需要提供一个回调函数来执行您需要的任何JSON处理。

$.getJSON()是异步的 – 它不返回JSON。

您需要提供回调函数 ,使用:

 $.getJSON(url, callback); 

要么

 var jqxhr = $.getJSON(url); jqxhr.done(success_callback); // will be passed the JSON jqxhr.fail(error_callback); // will be called if there's an error 

后者更灵活,因为您还可以注册错误回调,原始$.getJSON方法不支持。

您需要使用回调函数,因为您异步检索数据。

你调用$("p").text(json.firstName);的那一刻$("p").text(json.firstName); 尚未加载JSON。

这就是你必须使用的原因:

$.getJSON('userManagement/getUser',function(json){...your code here... }<-callback