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

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

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

Парсинг JSON - Windows Phone

09.05.2013, 02:39. Просмотров 1937. Ответов 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
Посмотрите здесь:

Обработка JSON данных - Windows Phone
Ребята, понимаю, можно воспользоваться яндексом, но он тогкового ничего не показал. Подскажите, каким образом можно разобрать и...

Парсинг сайтов - Windows Phone
Подскажите пожалуйста как можно парсить сайты с помощью json, webclient и htmlagility. Прочитал множество статей, но там идет упор на XML.

Ошибка при преобразовании в JSON-формат - Windows Phone
Пишу приложение под WP 7.1. Сделал структуру для парсинга JSON-файла, но почему-то на строчке парсинга вылетает неизвестная мне ошибка....

Парсинг html страниц windows phone 8.1 - Windows Phone
После обновления windows phone до версии 8.1, перестала работать библиотека HtmlAgilityPack. Может подскажет кто другие способы/библиотеки...

Парсинг JSON - Delphi
Данный код выдает ошибку &quot;access violation at address 008d4b2c&quot; var s : string; Json: TJSONObject; Jarr : TJSONArray; ...

Парсинг json - Perl
Хочу спарсить данные на сайте, они не отображаются в исходнике т.е их выводит на страницу js скрипт. Адрес я нашел /json/cabinet/...

Парсинг JSON - C#
У меня срочная задача! Есть JSON ответ такого типа: {&quot;status&quot;:200,&quot;workers&quot;:} Юзер вводит имя и фамилию, и программа должна найти...

Парсинг JSON - PHP
Здрасьте.. Пишу на 3-й форум. Проблема с парсингом JS. Выглядит он так: &lt;? $s =...

Парсинг с json - PHP
Хочу спарсить idы картинок с альбома. Приходит такой ответ: {&quot;response&quot;:} Я до этого уже парсил с json, но тут pid в...

Парсинг Json - C#
{&quot;result&quot;:} { ***&quot;result&quot;: , *********&quot;final&quot;: true ******} ***], ***&quot;result_index&quot;: 0 } Можете привести пример кода,...

Парсинг json в C# - C#
Здравствуйте. Есть json вида: ...

.NET 4.x Парсинг JSON - 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 - класс, где хранятся передаваемые строкой объекты (приведены в вопросе).
Ответ Создать тему
Опции темы

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