Yahoo! Pipesで、Fetch DataモジュールにJSONデータを読ませて、「Path to item list」欄に繰り返しデータのJSONパスを渡してフィードデータとして扱うことがある。
例えばSBM bookmarks APIではURLを渡すとソーシャルブックマークの投稿の一覧が取れるけど、その中でlivedoorクリップのデータを取るためにFetch Dataを使ってる。
それが、最近このモジュールがおかしくなって、パースエラーを返すようになった。Path to item listを無指定にすると問題ないので、パースエラーってのもおかしな話だなあと思うんだけど、まあ現実にそうなってしまったので仕方ない。そのせいでSBM bookmarks APIにもlivedoorクリップのデータが含まれなくなってしまった。最近pageinfoにlivedoorクリップのデータが出なくなったのはそのため。
そこで、この件に対処できるかもしれない方法を考えた。
もともとこういう状態のものを、以下のようにする。
こんな感じ。Fetch DataにPath to item listを指定するとダメなので消して、変わりにSub-elementでComments要素を抜き出している。
とりあえずSBM bookmarks APIはこのやり方で直ったっぽい。ただ全ての場面でこのやり方が使えるかどうかはわからない。そんなにFetch Dataは頻繁に使っていたわけではないので、思いつくテストケースが少ない。
とはいえ、Fetch DataでJSONを読ませている人は一度、ちゃんとデータが返ってるか確認してみた方がいいかも知れません。