トップ回答者
C# Twitterizer JsonSerializationExceptionについて

質問
-
Visual Studio 2010を使用して
C#を勉強中のものです。
twitterと連携させるアプリケーションの作成したいと思っており、
調べてみたところ「Twitterizer」というライブラリが
使いやすいとのことでしたので、早速導入してみました。
現在、色々テストをしてみている状態なのですが、
「ツイートをあるキーワードで検索して結果を表示させる」
処理にてエラーが発生した為、
原因と解決方法についてご存知の方がいらっしゃいましたら
ご教授よろしくお願いいたします。
実際に記述した内容は以下の通りとなります。
private void button1_Click(object sender, EventArgs e)
{
string searchText = "テスト";
TwitterResponse<TwitterSearchResultCollection> ret = TwitterSearch.Search(searchText);
TwitterSearchResultCollection results = ret.ResponseObject;
for (int i = 0; i < results.Count; i++)
{
MessageBox.Show(results[i].Text);
}
}
上記処理を実行したところ、
「TwitterResponse<TwitterSearchResultCollection> ret = TwitterSearch.Search(searchText);」
の部分にて
「JsonSerializationExceptionはハンドルされませんでした。
Error converting value 0.133 to type
'Twitterizer.TwitterSearchResultCollection'.」
というエラーが発生します。
その前につぶやきを投稿する処理をテストで行ってみたところ
正常に処理が行われましたので、
ライブラリの参照の設定自体はうまくいっているのではないかと思うのですが・・・。
JsonSerializationExceptionについて調べてみましたが
どうしてもわかりませんでしたのでご質問させていただきます。
どうぞよろしくお願いいたします。
回答
すべての返信
-
こんにちは現在私の環境で上記コードを実行したところ正常に取得できました。
JsonSerializationExceptionはJSON形式でないデータを扱おうとした場合などに発生することがあるので、ちょうど検索文字列の発言でJSON形式に合わない内容があったのではないでしょうか?
「テスト」以外の文字列でも動作を確認してみてはいかがでしょう?
あとはExceptionをTry、Catchでハンドリンクしておくとよいですね。
このライブラリについてはあまり詳しくないのでわかる範囲で。
なんらかのバグで最新版にしたら治っているということも考えられますのでバージョンも確認しておくとよいと思います。
-
お礼が遅くなり申し訳ありません。
ご返信ありがとうございました!
アドバイス頂いた通り、「テスト」以外の英字や数字など
違う文字列にて動作確認を行ってみましたがやはり結果は同様でした。
sleeping_coelacanth様の環境ではうまくいったとのこでしたので、
私の参照の追加設定自体に間違いがあったのかもしれません。
よろしければsleeping_coelacanth様がどのように
参照の追加設定をされたのか教えていただけませんでしょうか?
私は
http://d.hatena.ne.jp/AllaMarcia/20120114/1326513447
のページを参考に、
「GET IT」 ⇒ 「GITHUB」 ⇒ 「TWITTERIZER」をクリックし、
ZIPファイルをダウンロード、
ダウンロード後、解凍したフォルダの中に上記ページで書かれていた"FULL"フォルダがなかった為
「ExampleApplications」⇒「lib」フォルダの中の
「Newtonsoft.Json.dll」と「Twitterizer2.dll」の2ファイルを追加しました。
なお、私の環境は
Windows 7 Home Premium SP1 64bit
Visual Studio 2010 Express
を使用しています。
見当違いのことを聞いているようでしたら申し訳ありません(汗
よろしくお願いいたします。
- 編集済み ぬこまみれ 2012年10月5日 13:40