1

我正在创建一个MONGOHQ用于存储数据并使用 Sinatra 运行该应用程序的 Web 应用程序。如果我去: localhost:4578/names.json,我会得到我用于数据的所有名称的名称。但是,我在使用getJSON.jquery

该文件/names.json如下所示:

["Yasiel Puig","Nick Franklin","Mike Zunino","Jurickson Profar","Manny Machado"]

我试着做这样的事情:

var series = []
$.get('names.json', function(n) {
n.forEach(function(s) {
  series.push({
    name: s
  })
})
}, 'json')

但这并没有真正起作用。您对我应该如何访问 json 数据有任何其他想法吗?我可以将它保存到一个var吗?我很确定json数据不是JSONP格式,所以也许我应该把它当作AJAX

4

3 回答 3

0

您的代码似乎有效,我在这个Fiddle 中尝试过。因此问题可能出在服务器端。

var data = ["Yasiel Puig", "Nick Franklin", "Mike Zunino", 
"Jurickson Profar", "Manny Machado"];

var series = [];
data.forEach( function( e ) {
        series.push( {
            name: e
        });
    }
);

series.forEach( function( e ) {
     console.log( e.name );   
});
于 2013-08-01T07:28:45.650 回答
0

调用之间有区别$.get('names.json')$.get('/names.json')我认为您没有将开头添加slash(/)到 url

当你打电话给$.get('names.json')它时complete_current_url + '/names.json'

例如。如果您在/home页面上,那么将调用的 url 是/home/names.json

$.get('/names.json') 会打电话current_domain + '/names.json'

从任何页面它总是会调用'/names.json'

于 2013-08-01T07:35:04.410 回答
0

我可以将它保存到一个var吗?

可能。不过,这取决于您需要哪个变量以及何时/何地。

$.get()是异步的。它只启动请求,将回调设置为侦听器,然后退出。

var series = [];

$.get('names.json', function (n) {
  n.forEach(function(s) {
    series.push({
      name: s
    });
  });

  // inside the callback...
  console.log(series); // filled: [ { name: "Yasiel Puig" }, ... ]
});

// after the request...
console.log(series);   // still empty: []

因此,您可以在回调中使用series,或更重要的是。n在外面,它还不能使用。

于 2013-08-01T07:33:07.433 回答