realazy


如何使用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是一个函数,那么我们先定义好它,然后通过scriptsrc引入API地址执行即可。

请参考:http://realazy.org/lab/flake/

3 Responses to “如何使用Flickr JSON格式的API”

  1. surfchen Says:

    这样做主要是为了解决js的跨域问题。如果输出为纯json数据,那么非flickr.com域的页面的js将无法调用,因为xmlhttprequest这类东西不支持跨域获取数据。而src=xxx这种方法则可以解决这个跨域问题。但是scr=xxx所引用的js文件如果只是纯json,那么这段json是没有办法解析的。所以现在提供json api的,一般都是以一个js的赋值语句来提供。

    如果希望用其他语言来解析这段字符串,只需要做一些字符串的正则替换把赋值部分去掉,然后再解析就可以了。

  2. adam Says:

    令人耳目一新的方法,解决了Ajax开发方面跨域的问题。
    这个方法其实并不复杂,不过我缺始终没有想到这方面来,看来考虑问题还需要开拓思路啊!

  3. HooPower Says:

    明明就是JavaScript的语法,怎么就成了Json了呢。{}是定义一个对象,[]是一个数组!

Leave a Reply


realazy (懒到死) is proudly powered by WordPress | Entries (RSS) and Comments (RSS)