如何使用Flickr JSON格式的API
如果你曾经试图使用Flickr JSON格式的API,第一眼一定会感到奇怪,这真的是JSON吗?不信请看http://api.flickr.com/services/feeds/photos_public.gne?format=json&tags=flower.
诸如jsonFlickrFeed({...})看起来更像一个函数的调用。细心一看,确实不错,它把JSON作为jsonFlickrFeed函数的参数输出了。本人猜测这是安全方面的原因。不过这样一来,我们如何才能把JSON抽取出来为我所用?Flickr能提供这种形式的API,那也肯定能用。
其实,前面我已经一语道破天机,jsonFlickrFeed是一个函数,那么我们先定义好它,然后通过script的src引入API地址执行即可。
May 23rd, 2007 at 07:03
这样做主要是为了解决js的跨域问题。如果输出为纯json数据,那么非flickr.com域的页面的js将无法调用,因为xmlhttprequest这类东西不支持跨域获取数据。而src=xxx这种方法则可以解决这个跨域问题。但是scr=xxx所引用的js文件如果只是纯json,那么这段json是没有办法解析的。所以现在提供json api的,一般都是以一个js的赋值语句来提供。
如果希望用其他语言来解析这段字符串,只需要做一些字符串的正则替换把赋值部分去掉,然后再解析就可以了。
May 23rd, 2007 at 08:49
令人耳目一新的方法,解决了Ajax开发方面跨域的问题。
这个方法其实并不复杂,不过我缺始终没有想到这方面来,看来考虑问题还需要开拓思路啊!
July 25th, 2007 at 00:09
明明就是JavaScript的语法,怎么就成了Json了呢。{}是定义一个对象,[]是一个数组!