无法获取Json

无法获取Json

问题描述:

我想获取一个json以在div中仅显示syn。无法获取Json

它像: -

$.getJSON('http://words.bighugelabs.com/api/2/eba286cdc7f3619674544d80ce94cb1b/stack/json', function(data) { 

     //parse the response to display in a div 


     }); 

output format.


JSON从链接标记:

{ 
    "noun": { 
     "syn": [ 
      "batch", 
      "deal", 
      "flock", 
      "good deal", 
      "great deal", 
      "hatful", 
      "heap", 
      "lot", 
      "mass", 
      "mess", 
      "mickle", 
      "mint", 
      "muckle", 
      "peck", 
      "pile", 
      "plenty", 
      "pot", 
      "quite a little", 
      "raft", 
      "sight", 
      "slew", 
      "spate", 
      "tidy sum", 
      "wad", 
      "push-down list", 
      "push-down stack", 
      "smokestack", 
      "push-down storage", 
      "push-down store", 
      "agglomerate", 
      "chimney", 
      "cumulation", 
      "cumulus", 
      "large indefinite amount", 
      "large indefinite quantity", 
      "list", 
      "listing", 
      "memory device", 
      "mound", 
      "storage device", 
      "whole lot", 
      "whole slew" 
     ] 
    }, 
    "verb": { 
     "syn": [ 
      "pile", 
      "heap", 
      "arrange", 
      "lade", 
      "laden", 
      "load", 
      "load up", 
      "set up" 
     ], 
     "rel": [ 
      "heap up", 
      "pile up", 
      "stack away", 
      "stack up" 
     ] 
    } 
} 
+0

@Matt不是JSON ..检查我在代码中提供的链接.. – 2011-03-06 15:36:17

+0

你有两个数组。 noun.syn和verb.syn。您可以使用for循环并遍历这两个数组并执行任何您想要的操作。 – 2011-03-06 15:41:19

由于同源策略,JSON无法加载,只需在您的世界中添加?callback=?即可使用。更新后的代码,

$.getJSON('http://words.bighugelabs.com/api/2/eba286cdc7f3619674544d80ce94cb1b/stack/json?callback=?', function(data) { 
    //parse the response to display in a div 
    //you can access the JSON object from the data object. 
}); 

更新:

当你追加一个?callback=?$.getJSON使用的URL,jQuery的理解,这是一个JSONP请求,而不是一个XMLHttpRequest来获取JSON。实际上,回调参数可以是任何事情,但是该值必须是?才能触发JSONP请求。

当提出请求时,jQuery替换参数?callback=jQuery15107307685413397849_1299439987443,每次发出请求时该值都是唯一的。

+0

非常好! '回调'参数提供了什么,允许请求跨域?它触发jQuery使用某种技巧在引擎盖下? – JAAulde 2011-03-06 16:18:31

+0

Yaa我也想知道那个。请解释。 – 2011-03-06 17:17:10

+0

@JAAulde @user:它使它成为[JSONP](http://en.wikipedia.org/wiki/JSON#JSONP)请求。 – 2011-03-06 17:35:07

你没有提到你在运行什么问题。由于是,如果你正在运行的域,“words.bighugelabs.com”张贴的代码,那么你的回调函数里面,你可以简单地访问:

data.verb.syn 

或任何其他属性。如果您不在该域中,那么您可能会遇到与跨域脚本限制相关的问题。如果是这样的话,你会想看看JSONP(如果远程服务器支持它)或代理方法。

+0

yaa我在远程服务器上。这就是它没有运行,我想。 – 2011-03-06 15:43:05

+0

好的,你应该知道远程服务是否有可用的API的JSONP版本。 – JAAulde 2011-03-06 15:45:55

好的,我看到了你提供的URL的JSON响应。你可以做这样的事情(你可以使它更有效地利用StringBuilder):

var list; 

var syn = data.noun.syn; 

for(var i = 0; i < syn.length; i++) 
{ 
    list += syn[i]; 
} 

syn = data.verb.syn; 

for(var i = 0; i < syn.length; i++) 
{ 
    list += syn[i]; 
} 

$('#mydiv').append(list); 

在未来,请具体谈谈这个问题是,你面对的是什么 -

  • 你无法获取JSON?看@ JAAulde的答案;关于同源策略的部分
  • 您是否无法解析JSON?看到我的回答,看看JSON.org或者this tutorial
  • 还有别的吗?请更新您的问题。
+0

雅娅其获取Json的问题.. – 2011-03-06 16:04:10