无法获取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
});
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"
]
}
}
由于同源策略,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
,每次发出请求时该值都是唯一的。
非常好! '回调'参数提供了什么,允许请求跨域?它触发jQuery使用某种技巧在引擎盖下? – JAAulde 2011-03-06 16:18:31
Yaa我也想知道那个。请解释。 – 2011-03-06 17:17:10
@JAAulde @user:它使它成为[JSONP](http://en.wikipedia.org/wiki/JSON#JSONP)请求。 – 2011-03-06 17:35:07
你没有提到你在运行什么问题。由于是,如果你正在运行的域,“words.bighugelabs.com”张贴的代码,那么你的回调函数里面,你可以简单地访问:
data.verb.syn
或任何其他属性。如果您不在该域中,那么您可能会遇到与跨域脚本限制相关的问题。如果是这样的话,你会想看看JSONP(如果远程服务器支持它)或代理方法。
yaa我在远程服务器上。这就是它没有运行,我想。 – 2011-03-06 15:43:05
好的,你应该知道远程服务是否有可用的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。
- 还有别的吗?请更新您的问题。
雅娅其获取Json的问题.. – 2011-03-06 16:04:10
@Matt不是JSON ..检查我在代码中提供的链接.. – 2011-03-06 15:36:17
你有两个数组。 noun.syn和verb.syn。您可以使用for循环并遍历这两个数组并执行任何您想要的操作。 – 2011-03-06 15:41:19