API仕様
この JSON to JSONP bridgeAPI を使います。パラメータとして渡すJSONのURLは、エンコードが必要なので注意してください。
http://pipes.yahoo.com/pipes/pipe.run?u=JSONを返すAPIのURL&_id=332d9216d8910ba39e6c2577fd321a6a&_render=json&_callback=コールバック名
レスポンス例
Livedoor Weather Hacksの天気予報APIを使って、JSONP変換してみます。以下は、オリジナル(JSON)のレスポンス。publiTtimeって一体なんだろうか...。
{
"publiTtime":"2013-03-06T17:00:00\u002b0900",
"title":"\u9577\u91ce\u770c \u9577\u91ce \u306e\u5929\u6c17",
"description":{
"text":" \u65e5\u672c\u306e\u5357\u306b\u306f\u9ad8\u6c17...",
"publicTime":"2013-03-06T16:40:00\u002b0900"
},
"link":"http://weather.livedoor.com/area/forecast/200010",
"pinpointLocations":[
{
"link":"http://weather.livedoor.com/area/forecast/2020100",
"name":"\u9577\u91ce\u5e02"
},
...
],
...
}
これが、Yahoo Pipsを使って、JSONP変換するとこんな感じになります。Yahoo Pipsのヘッダー情報などが入り、元のデータがネストするので、注意してください。value.items 以下が元のデータです。
a({
"count":1,
"value":
{
"title":"JSON to JSONP bridge",
"description":"To convert any JSON delivering url to JSONP, fetch \"http:\/\/pipes.yahoo.com\/pipes\/pipe.run?u=\"+ encodeURIComponent(url) + \"&_id=332d9216d8910ba39e6c2577fd321a6a&_render=json&_callback=\" + callback name",
"link":"http:\/\/pipes.yahoo.com\/pipes\/pipe.info?_id=332d9216d8910ba39e6c2577fd321a6a",
"pubDate":"Wed, 06 Mar 2013 12:20:46 +0000",
"generator":"http:\/\/pipes.yahoo.com\/pipes\/",
"callback":"a",
"items":[
{
"publiTtime":"2013-03-06T17:00:00+0900",
"title":"\u9577\u91ce\u770c \u9577\u91ce \u306e\u5929\u6c17",
"description":{
"text":"\u65e5\u672c\u306e\u5357\u306b\u306f\u9ad8....",
"publicTime":"2013-03-06T16:40:00+0900"
},
"link":"http://weather.livedoor.com/area/forecast/200010",
"pinpointLocations":[
{
"link":"http:\/\/weather.livedoor.com\/area\/forecast\/2020100",
"name":"\u9577\u91ce\u5e02"
},
...
]
}
]
}
})
まとめ
Yahoo Pipesのヘッダーが結構ウザイですね。素の形式で変換してくれるヤツをまた探しておきます。話は変わりますが、publiTtimeってなんだろうかー。
0 件のコメント:
コメントを投稿