なぜこの組み合わせかというと、JSONObjectを使うときにエラーが出るからです。
twitter4jの使い方はこちらの記事を見てください。
twitter4jのライブラリをスケッチフォルダにインストールした後で、次のようなProcessingスケッチを書いてみましょう。
import twitter4j.conf.*; import twitter4j.internal.async.*; import twitter4j.internal.org.json.*; import twitter4j.internal.logging.*; import twitter4j.http.*; import twitter4j.internal.util.*; import twitter4j.api.*; import twitter4j.util.*; import twitter4j.internal.http.*; import twitter4j.*; void setup() { size(300, 300); JSONObject json = loadJSONObject("test.json"); String x = json.getString("x"); String y = json.getString("y"); println("x = " + x); println("y = " + y); } void draw() { }
非常に簡単なコードです。twitter4jのライブラリを読んでいる以外は、単純に setup の中で "test.json" を読んでいるだけです。
もちろん、スケッチと同じフォルダ内に次のような "test.json" を置いておきます。
{ "x": "2", "y": "123" }
すると次のようなエラーが出るでしょう。
The type JSONObject is ambiguous
"ambiguous = あいまい" ですから、複数のJSONObjectがあってどちらか判断が付かないということでしょう。
おそらくこれは、twitter4j 2.2.5 のライブラリ内でも JSONObject が宣言されていて、Processing 2.0 のものとどちらか判断がつかないのだと思います。
その証拠に、import文をすべて削除すると、何のエラーもなく実行されます。
したがって、FQDNでProcessing 2.0 のJSONObjectを指定しなければなりません。
「Processing 2.0 JSONObejct」でGoogle検索すると、次のクラスリファレンスが出てきます。
がんばって探すと、JSONObjectのFQDNは、
processing.data.JSONObject
だということがわかりますので、そのようにソースコードを修正します。
参考: Class JSONObject
具体的には、次の通りです。
import twitter4j.conf.*; import twitter4j.internal.async.*; import twitter4j.internal.org.json.*; import twitter4j.internal.logging.*; import twitter4j.http.*; import twitter4j.internal.util.*; import twitter4j.api.*; import twitter4j.util.*; import twitter4j.internal.http.*; import twitter4j.*; void setup() { size(300, 300); processing.data.JSONObject json = loadJSONObject("test.json"); String x = json.getString("x"); String y = json.getString("y"); println("x = " + x); println("y = " + y); } void draw() { }
では、この辺で。