hatenaGraph
Favorites APIからお気に入りユーザの一覧を取得してグラフとして可視化するプログラムを作ってみた.
Main.javaがエントリーポイントで引数にuserIdを与えるとそのユーザをノードとして表示する.クリックするとつながってるユーザをひっぱってきてグラフに追加する.*1
ソース : http://www.stat.t.u-tokyo.ac.jp/~tsubosaka/src/hGraphSrc.zip
必要だったのはuserIdを指定するとJSONをパースして,お気に入りのリストを返す関数だけだったんだけどついでだから可視化してみました*2.
実行環境はjavascriptのevalをしている関係でjdk 6.0以上が必要.あと可視化の方はJUNGと依存しているライブラリを全部取ってきてコンパイルする必要があります.
追記:データはJSON形式で来るのでJavaから使うときには配列なりリストにする必要があるのだけど今回はjava SE 6でJavaScriptが標準でサポートされているのでそれを使いました.
package json; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class JSONTransfer { public static String[] jsonToUserList(String json) throws ScriptException{ String script = "ujson = "+ json +";" + "users = ujson['favorites'];" + "var a = java.lang.reflect.Array.newInstance(java.lang.String , users.length); " + "for(i = 0 ; i < users.length ; i++){" + "user = users[i];" + " a[i] = user.name;" + "}" + "a;"; // create a script engine manager ScriptEngineManager factory = new ScriptEngineManager(); // create a JavaScript engine ScriptEngine engine = factory.getEngineByName("JavaScript"); // evaluate JavaScript code from String try{ return (String[])engine.eval(script); }catch (ScriptException e) {} } }