0

TwitterからC#でJSONオブジェクトを解析しようとしていますJObjectが、必要な結果の開始点がどこにあるのかわからないようです。例えば:

私は以下を取得する必要があります:

  • アバターのURL
  • Twitterの名前
  • メッセージ

JSON文字列は次のようになります。

{"completed_in":0.01、 "max_id":297026363595042816、 "max_id_str": "297026363595042816"、 "page":1、 "query": "UOL01"、 "refresh_url": "?since_id = 297026363595042816&q = O1"、 "results ":[{"created_at ":"2013年1月31日木曜日16:59:38+0000 "、" from_user ":" CarrieLouiseH "、" from_user_id ":252240491、" from_user_id_str ":" 252240491 "、" from_user_name ":" Carrie Haworth "、" geo ":null、" id ":297026363595042816、" id_str ":" 297026363595042816 "、" iso_language_code ":" nl "、" metadata ":{" result_type ":"最近 "}、" profile_image_url ": "http://a0.twimg。com / profile_images / 1721499350 / 5680_216695890261_521090261_7945528_588811_n_normal.jpg "、" profile_image_url_https ":" https://si0.twimg.com/profile_images/1721499350/5680_216695890261_521090261_7945528_588811_n_normal.jpg "、" source ":" < .com / "> web </a>"、 "text": "Test#01"、 "to_user":null、 "to_user_id":0、 "to_user_id_str": "0"、 "to_user_name":null}]、 "results_per_page":15、 "since_id":0、 "since_id_str": "0"}"、" text ":" Test#01 "、" to_user ":null、" to_user_id ":0、" to_user_id_str ":" 0 "、" to_user_name ":null}]、" results_per_page ":15、" since_id ": 0、 "since_id_str": "0"}"、" text ":" Test#01 "、" to_user ":null、" to_user_id ":0、" to_user_id_str ":" 0 "、" to_user_name ":null}]、" results_per_page ":15、" since_id ": 0、 "since_id_str": "0"}

私の仮定は、「results」から始めれば、「from_user」などにアクセスできるということでした。これが私のコードです(これまでのところ):

void DownloadStringCompleted(object senders, DownloadStringCompletedEventArgs e)
    {
        try
        {
            List<TwitterItem> contentList = new List<TwitterItem>();

            JObject ja = JObject.Parse(e.Result);
            int count = 0;

            JToken jUser = ja["results"];

            var name2 = (string)jUser["from_user_name"];
        }catch(Exception e){
         MessageBox.Show("There was an error");
        }
    }

しかし、これは例外をキャッチしているようです。誰かが私がどこで間違っているのかについて何か考えがありますか?

4

1 に答える 1

1

あなたが持っているJSONは正しくありません-"要素results[0]["source"]のをエスケープする必要があります:

...,"source":"<a href=\"http://twitter.com/\">web</a>","...

また、ja["results"]配列です。文字列インデクサーを使用してその要素を取得することはできません。最初に目的のインデックスの要素を取得する必要があります。次に、そのfrom_user_nameプロパティにアクセスできます。

JObject ja = JObject.Parse(e.Result);
int count = 0;
JToken jUser = ja["results"][0];
var name2 = (string)jUser["from_user_name"];
于 2013-02-04T14:51:52.007 に答える