Javascript 从JSON文件检索数据
我试图使用JQuery的JSONP特性从网站检索气压数据 首先,我用雅虎!管道将XML数据转换为JSON。然后我尝试在警报中接收并使用这些数据,但没有成功。在本文中,我有一个简单的工作示例,但当我尝试使用更高级的JSON文件时,它不起作用Javascript 从JSON文件检索数据,javascript,jquery,json,jsonp,yahoo-pipes,Javascript,Jquery,Json,Jsonp,Yahoo Pipes,我试图使用JQuery的JSONP特性从网站检索气压数据 首先,我用雅虎!管道将XML数据转换为JSON。然后我尝试在警报中接收并使用这些数据,但没有成功。在本文中,我有一个简单的工作示例,但当我尝试使用更高级的JSON文件时,它不起作用 另请参见IBM。代码中的问题 您忘记在链接中包含http:// 您需要尝试此操作(请参阅提醒。它将提醒标题) 要获取第二个参数,需要使用data.value 代码有很多问题,我修复了它,并对这些问题进行了评论 请点击此处: 1.)您必须在JSFIDLE中
另请参见IBM。代码中的问题
- 您忘记在链接中包含
http://
提醒
。它将提醒标题)
要获取第二个参数,需要使用data.value
代码有很多问题,我修复了它,并对这些问题进行了评论
请点击此处:
1.)您必须在JSFIDLE中选择jQuery,而不是(默认)Mootools。2.)打开浏览器的javascript控制台,查看发生的错误。3.)您尚未定义回调函数!我在第一个链接上得到了404。这一页不完整found@akellehe他还忘记了链接中的
http://
。它说data.value
在错误控制台中是未定义的,即使在添加http://
并更改为JQuery(我在参考资料中添加了它)之后也是如此。看起来您只是在学习javascript。我只能建议下次尝试以较小的增量进行测试。了解哪些部件出现故障以及原因。如果你只是写了一堆代码,然后猜猜问题出在哪里,你总是会得到像这个问题一样的误导性标题(真的:我投了反对票,因为实际问题与标题完全无关)。你也可以看看我的答案,我更正了你的代码,警报会吐出压力值。祝你的项目好运!对不起,我没有萤火虫。添加console.log有什么意义?在您的演示中,单击div仍然没有显示警报。Thanks@Ian如果你要做JS开发,我想强烈建议你学习firebug或者如何使用其他浏览器的JavaScript控制台@Ian我会摆弄alert()
,但你应该用它来学习Firebug我不使用Firebug,因为我只会使用Firefox开发工具(Firebug是Firefox中速度最慢的插件之一)。我现在看到了警报,但我没有找到气压计,这意味着data.value.items.data.parameters.pressure.value
不正确。有什么想法吗?在通过JavaScript整理程序运行JSON文件后,我检查了它,但我无法找出该路径的错误我现在开始工作了。我唯一的问题是当我进入参数时。数据
下有两个参数
,如何选择第二个?
<div onClick="$.getJSON('http://pipes.yahoo.com/pipes/pipe.run?_id=467a55b506ba06b9ca364b1403880b65&_render=json&textinput1=40.78158&textinput2=-73.96648&_callback=?', function(data){alert(data.value.title)})">Click Me</div><!--I can't get this to work-->
<div class="loadjson">Click Me</div>
function barometer() {
$.getJSON('http://pipes.yahoo.com/pipes/pipe.run?_id=467a55b506ba06b9ca364b1403880b65&_render=json&textinput1=40.78158&textinput2=-73.96648&_callback=?', function(data) {
alert(data.value.title);
})
}
$('div.loadjson').on('click', function() {
barometer();
});
- 1st one is `count` that have integer value
- 2nd one is `value`, which is an `Object`.
function loadBarometerData(){
// 1. it's not generally bad practice to put stuff in the
// onClick listeners, but really... don't put such long code there! it's not readable ...
// 2. you were missing a "http://" and it was downloading
// jsfiddle.net/pipes.yahoo.com/....
// 3. getJSON doesn't return a result immediately, you need to use callbacks for that!!
$.getJSON('http://pipes.yahoo.com/pipes/pipe.run?_id=467a55b506ba06b9ca364b1403880b65&_render=json&textinput1=40.78158&textinput2=-73.96648&_callback=?' ).success( barometer );
};
function barometer(data) {
console.log( data );
// 4. you had items instead of items[0]
// similar with data.
alert(data.value.items[0].data[1].parameters.pressure.value);
};
function showPrice(data) {
alert("Symbol: " + data.symbol[0] + ", Price: " + data.price);
}