一些關於 json 的用法

Posted by TJ Wei on 星期一, 3月 19, 2007
這個又是另外一個關於網頁技術的筆記。主要在說明利用 json 的 blog mashup 玩法

目前網路上面將資料轉成 json 的方式很多,各有優缺點。
  • 最一個方式是使用 google reader,這個很基礎,我就不多說了,可以參考DIY Google Reader 聯播網 (初階+進階)。這個用來做聯播是輕鬆如意,但是缺點是 google reader 提供的 json 只提供 summary而沒有全文。雖然 google reader 的 atom feed 有提供全文,但是似乎不吃 gdata 的 alt=json 這招。
  • 第二個方式是 Yahoo! Pipes,這個一般而言還挺不錯的,還有許多程式上的優點,比方說可以做 feed 的翻譯。不過他的 replace 模組還無法做大規模的替換, feed 的翻譯會去掉格式,而且 content 裡面的原始文字格式會亂掉。
  • 第三個方式是使用 feedburner, 可以用這個網址http://api.feedburner.com/format/1.0/JSONP?uri=ptt/beauty&callback=myappfn 來傳回 json。其中的 ptt/beauty 換成你的 feed, callback 也要換成你的 callback。這個方式基本上簡單清楚,feedburner 本身也提供 feedflare 等等花樣讓你來玩。
  • 第四種方式是使用 openkapow 產生 json。 openkapow 基本上是網頁機器人,他可以將普通網頁轉換成為 json。這個用途就很多了,用法幾乎無限。比方說你其實可以在你的網頁中讀取「任何」一個 website 的 html 都行,只要設定一個 rest,抓取body 的 html 就行了。
  • 第五種是使用內建的 json。比方支援 google data api的,或者 yahoo web 服務的,都有原生的 json 可用。

實際的使用可以參考下面是幾個簡單範例
  1. ptt beauty 縮圖。這個和之前寫的 自動縮圖bookmarlet 原理相同。 ptt 的板本身有提供 rss,但是格式有時後會出錯。我原來使用 google reader 和 yahoo pipes 都有問題,一個是只有 summary,一個是文字排版資訊會不見,最後使用 feedburner 才完成。
  2. 某日本 AV 女優部落格日翻英。這是最早的例子,所以做得不好。 這裡使用了 feedburner -> yahoo pipes 然後利用 openkapow 來翻譯。雖說是 AV 女優部落格,但是沒有什麼有色情的內容。原來打算直接 利用 yahoo pipes 做聯播和翻譯的工作,但是 yahoo 的翻譯會把格式弄不見,想要先把內文的html 做轉換,發現也會有問題,所以改用 openkapow 來進行翻譯。你會先看到日文的內容,然後自動慢慢轉換成英文。如果使用 google 翻譯時,html 格式會保留,但是 google 似乎有時會有使用限制,大量的查詢翻譯,他會停止服務。這時 openkapow 會自動改用其他翻譯引擎。這時,翻譯結果就不會保留 html 格式了。(這個範例請使用 Firefox。使用 IE 結果會不太好)(補充日翻中)
  3. 影集 Heores 的 Beaming Beeman blog 標題英翻中。同樣上面的日翻英,原本是想用這鏡子取代上面那個 AV女優的例子,但是在弄的時候,發現不能用太長的句子去翻譯,因為句子是放在 url 裡面的。這樣就要斷句,會產生大量的翻譯查詢,有點濫用翻譯系統。所以改成只翻譯標題。這個系統使用 blogger 的 gdata api而來產生 json,然後再利用 openkapow 來翻譯。
  4. Slashdot 的中文翻譯。使用 google reader 和 openkapow。
  5. 可愛過頭(cute overload)BoinBoing 的中英對照。這兩個都是使用 feedburner +openkapow。當 google 翻譯器願意為我們工作的時候,翻譯出來的文字是圖文並茂的。當 google 不工作的時候,會中英對照。翻譯速度有時後會有點慢。(主要測試平台是 flock(mozilla/firefox 類的))

Categories: