Форум программистов, компьютерный форум CyberForum.ru

Программирование Windows Phone

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 5.00
Inside
Сам себе *****
31 / 31 / 3
Регистрация: 18.10.2009
Сообщений: 236
#1

Парсинг JSON - Windows Phone

09.05.2013, 02:39. Просмотров 1898. Ответов 1
Метки нет (Все метки)

Доброго времени суток. Для твиттер-приложения необходимо пропарсить timeline-ленту твиттера и вывести её в ListBox.
Собственно сколько перечитал - ничего не выходит. Помогите пожалуйста.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
      
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using Hammock.Web;
using System.Xml.Linq;
using Hammock.Authentication.OAuth;
using Hammock;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Runtime.Serialization;
/* Тут другой код */
 
  private void GetUserTimeLine(string userName)
        {
            WebClient wcTwitterTimeline = new WebClient();
            wcTwitterTimeline.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wcTwitterTimeline_DownloadStringCompleted);
            wcTwitterTimeline.DownloadStringAsync(new System.Uri("https://api.twitter.com/1.1/statuses/home_timeline.json?include_entities=true&page=2"));
        }
 
        void wcTwitterTimeline_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            
            if (e.Error != null)
            { return; }
 
 
            var rootObject = JsonConvert.DeserializeObject<TwitterApp.JsonInfo.RootObject>(e.Result);
 
            foreach (var tweets in rootObject.tweetleex)
            {
                listboxMyTimeline.Items.Add(tweets.text);
                listboxMyTimeline.Items.Add(tweets.user.screen_name);
                listboxMyTimeline.Items.Add(tweets.user.name);
            }
Ну и собственно сама строка сделанная через json2csharp:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace TwitterApp
{
   public class JsonInfo
    {
        public class Coordinates
        {
            public List<double> coordinates { get; set; }
            public string type { get; set; }
        }
 
        public class Entities
        {
            public List<object> urls { get; set; }
            public List<object> hashtags { get; set; }
            public List<object> user_mentions { get; set; }
        }
 
        public class Geo
        {
            public List<double> coordinates { get; set; }
            public string type { get; set; }
        }
 
        public class Attributes
        {
        }
 
        public class BoundingBox
        {
            public List<List<List<double>>> coordinates { get; set; }
            public string type { get; set; }
        }
 
        public class Place
        {
            public string name { get; set; }
            public string country_code { get; set; }
            public string country { get; set; }
            public Attributes attributes { get; set; }
            public string url { get; set; }
            public string id { get; set; }
            public BoundingBox bounding_box { get; set; }
            public string full_name { get; set; }
            public string place_type { get; set; }
        }
 
        public class Url2
        {
            public string expanded_url { get; set; }
            public string url { get; set; }
            public List<int> indices { get; set; }
            public string display_url { get; set; }
        }
 
        public class Url
        {
            public List<Url2> urls { get; set; }
        }
 
        public class Description
        {
            public List<object> urls { get; set; }
        }
 
        public class Entities2
        {
            public Url url { get; set; }
            public Description description { get; set; }
        }
 
        public class User
        {
            public string name { get; set; }
            public string profile_sidebar_fill_color { get; set; }
            public bool profile_background_tile { get; set; }
            public string profile_sidebar_border_color { get; set; }
            public string profile_image_url { get; set; }
            public string created_at { get; set; }
            public string location { get; set; }
            public bool follow_request_sent { get; set; }
            public string id_str { get; set; }
            public bool is_translator { get; set; }
            public string profile_link_color { get; set; }
            public Entities2 entities { get; set; }
            public bool default_profile { get; set; }
            public string url { get; set; }
            public bool contributors_enabled { get; set; }
            public int favourites_count { get; set; }
            public int? utc_offset { get; set; }
            public string profile_image_url_https { get; set; }
            public int id { get; set; }
            public int listed_count { get; set; }
            public bool profile_use_background_image { get; set; }
            public string profile_text_color { get; set; }
            public int followers_count { get; set; }
            public string lang { get; set; }
            public bool @protected { get; set; }
            public bool geo_enabled { get; set; }
            public bool notifications { get; set; }
            public string description { get; set; }
            public string profile_background_color { get; set; }
            public bool verified { get; set; }
            public string time_zone { get; set; }
            public string profile_background_image_url_https { get; set; }
            public int statuses_count { get; set; }
            public string profile_background_image_url { get; set; }
            public bool default_profile_image { get; set; }
            public int friends_count { get; set; }
            public bool following { get; set; }
            public bool show_all_inline_media { get; set; }
            public string screen_name { get; set; }
        }
 
        public class RootObject
        {
            public List<RootObject> tweetleex { get; set; }
            public Coordinates coordinates { get; set; }
            public bool truncated { get; set; }
            public string created_at { get; set; }
            public bool favorited { get; set; }
            public string id_str { get; set; }
            public object in_reply_to_user_id_str { get; set; }
            public Entities entities { get; set; }
            public string text { get; set; }
            public object contributors { get; set; }
            public object id { get; set; }
            public int retweet_count { get; set; }
            public object in_reply_to_status_id_str { get; set; }
            public Geo geo { get; set; }
            public bool retweeted { get; set; }
            public object in_reply_to_user_id { get; set; }
            public Place place { get; set; }
            public string source { get; set; }
            public User user { get; set; }
            public object in_reply_to_screen_name { get; set; }
            public object in_reply_to_status_id { get; set; }
            public bool? possibly_sensitive { get; set; }
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2013, 02:39     Парсинг JSON
Посмотрите здесь:

C# парсинг json от vk
Парсинг JSON PHP
Парсинг сайтов Windows Phone
Windows Phone Парсинг html страниц windows phone 8.1
Java SE Парсинг JSON
Ошибка при преобразовании в JSON-формат Windows Phone
Парсинг Json Delphi
Node.js Парсинг JSON
Обработка JSON данных Windows Phone
C# Парсинг Json
Как отправить json post запросом и принят json в ответ? Windows Phone
C# Парсинг Json

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Inside
Сам себе *****
31 / 31 / 3
Регистрация: 18.10.2009
Сообщений: 236
03.07.2013, 00:17  [ТС]     Парсинг JSON #2
Итак, слегонца забыв про эту тему, я нашел ответ на этот вопрос, вдруг поможет кому:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void GetUserTimeLine(string userName)
    {
        WebClient wcTwitterTimeline = new WebClient();
        wcTwitterTimeline.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wcTwitterTimeline_DownloadStringCompleted);
        wcTwitterTimeline.DownloadStringAsync(new System.Uri("http://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=" + userName));
    }
 
    void wcTwitterTimeline_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
 
            List<RootObject> tweets = JsonConvert.DeserializeObject<List<RootObject>>(e.Result);
            this.listboxMyTimeline.ItemsSource = tweets;
           
        }
listBoxMyTimeline - то, куда выводятся твиты.
RootObject - класс, где хранятся передаваемые строкой объекты (приведены в вопросе).
Yandex
Объявления
03.07.2013, 00:17     Парсинг JSON
Ответ Создать тему
Опции темы

Текущее время: 07:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru