jquery.getJSON的问题打印为未定义或声明函数未定义

时间:2013-01-23 03:10:48

标签: javascript jquery ruby-on-rails ruby-on-rails-3 json

这变得相当令人沮丧,我认为这将更容易做,所有我想要做的是使用我创建的作为API的rails应用程序,我似乎无法让它工作所以我创建了一个快速的小测试应用程序,以消除任何可能真正复杂的事情,我知道非常基本的java脚本,我的经验并没有进一步使用Jquery用于各种效果等。

我正在使用rails-api gem,我在这个测试中所做的只是简单地运行

Rails g scaffold user name

没有创建任何视图或类似内容,当您导航到用户路径时,您将看到包含用户的json数组(当前唯一的字段将被创建,更新,名称和ID)

这是我的代码。

$(document).ready(function(){


$('#new_user').submit(function(e) {
  $.post('/users', $(this).serialize());
  this.reset();
  e.preventDefault();
});

$.getJSON('/users', function(users) {
  $.each(users, function(user) { 
    var output = "<li>" + user.name + "</li>";
    $('#content ul').append(output);
 });
});

});

.getJson指向的json是什么样的

[{"user":{"created_at":"2013-01-23T02:30:42Z","id":1,"name":"test","updated_at":"2013-01-23T02:30:42Z"}},
{"user":{"created_at":"2013-01-23T02:31:49Z","id":2,"name":"test","updated_at":"2013-01-23T02:31:49Z"}}]

发布工作正常,但是当运行时,字段打印未定义,之前如果我把user.user.name它可以正常工作,显然这似乎不是最好的路线。

是否有我遗漏的东西或者这比我最初的更复杂,我认为为我的应用程序创建API客户端真正需要的就是解析像我这里的json并简单地输出它到divs。

1 个答案:

答案 0 :(得分:1)

您需要使用user.user.name$.each遍历数组,但每个都有一个带有user键的对象,name键位于其中。

http://jsfiddle.net/DC5Gg/