none
C# Twitterizer JsonSerializationExceptionについて RRS feed

  • 質問

  • 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について調べてみましたが
    どうしてもわかりませんでしたのでご質問させていただきます。

    どうぞよろしくお願いいたします。
    2012年10月3日 9:12

回答

すべての返信

  •  こんにちは現在私の環境で上記コードを実行したところ正常に取得できました。

     JsonSerializationExceptionはJSON形式でないデータを扱おうとした場合などに発生することがあるので、ちょうど検索文字列の発言でJSON形式に合わない内容があったのではないでしょうか?

     「テスト」以外の文字列でも動作を確認してみてはいかがでしょう?

     あとはExceptionをTry、Catchでハンドリンクしておくとよいですね。

     このライブラリについてはあまり詳しくないのでわかる範囲で。

     なんらかのバグで最新版にしたら治っているということも考えられますのでバージョンも確認しておくとよいと思います。

     

     

    2012年10月4日 9:43
  • お礼が遅くなり申し訳ありません。

    ご返信ありがとうございました!


    アドバイス頂いた通り、「テスト」以外の英字や数字など

    違う文字列にて動作確認を行ってみましたがやはり結果は同様でした。


    sleeping_coelacanth様の環境ではうまくいったとのこでしたので、

    私の参照の追加設定自体に間違いがあったのかもしれません。


    よろしければsleeping_coelacanth様がどのように

    参照の追加設定をされたのか教えていただけませんでしょうか?

    私は

    http://d.hatena.ne.jp/AllaMarcia/20120114/1326513447

    のページを参考に、

    http://www.twitterizer.net/より

    「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:32
  • インストールはNugetというパッケージ管理ツールを利用してインストールしました。
    2012年10月6日 6:13
  • ご返信ありがとうございます!

    ご教授いただいた通り、NuGetを使用して

    設定したところ正常に動作するようになりました!

    ありがとうございました!


    2012年10月6日 9:53