从JSON对象检索值时出现问题

时间:2010-09-28 19:29:26

标签: jquery json

我在从jQuery GET请求之后返回的JSON对象中检索值时遇到一些麻烦,我希望有人能够提供帮助。我想我可能会做一些愚蠢但却无法理解的事情。

在萤火虫中,响应显示为:

[{"plan_id":"2","plan_name":"plan 2","plan_desc":"plan 2 desc"}]

但是当我尝试检索它们时,它们是未定义的。

以下是我正在使用的代码:

jQuery(function(){
jQuery("#add_plan").click(function(){
var val = jQuery("#plan_id").val();
if (!isNaN(val))
{
      jQuery.ajax({
      success: function(data) {
        if (data)
        {

         jQuery("#plan-list").append(
"<li>"
+ " <label for=\"plans\">" + data.plan_name + "</label>"
+ "</li>"
); 
        }
      },
      type: 'GET',
          dataType: 'json',
          url: 'http://example.com/plans.php?plan=' + val 
      });
}
});
});

任何帮助都将不胜感激。

由于

3 个答案:

答案 0 :(得分:4)

因为它是一个数组,所以你需要data[0].plan_name,或者如果你期望有多个结果,可能需要这样的循环:

$.each(data, function() {
  $("<label for='plans' />").text(this.plan_name).wrap("<li />").parent()
    .appendTo("#plan-list");
});

You can give it a try here

答案 1 :(得分:3)

仔细观察您的JSON结果

[{...}]

是数组({})内的对象([])。

您可以使用

访问这些值
data[0].plan_name

答案 2 :(得分:0)

以上海报是正确的,但不要假设总会有一个数组,每次测试数据的值。如果它是一个对象,继续。如果它是一个对象/数组循环。