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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Dmitrin
21 / 21 / 3
Регистрация: 04.12.2012
Сообщений: 531
#1

Парсинг JSON для Android - Программирование Android

25.10.2015, 15:26. Просмотров 205. Ответов 0
Метки нет (Все метки)

Здравствуйте. Есть на WindowsPhone + Windows 8.1 решение. Там есть общий проект (Shared). И есть класс, который парсит json файл. Вот пример кода

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
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using Windows.Data.Json;
using Windows.Storage;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
 
 
namespace App.Data
{
    public class SampleDataGroup
    {
        public SampleDataGroup(String uniqueId, String title, String subtitle, String imagePath, String description)
        {
            this.UniqueId = uniqueId;
            this.Title = title;
            this.Subtitle = subtitle;
            this.Description = description;
            this.ImagePath = imagePath;
        }
 
        public string UniqueId { get; private set; }
        public string Title { get; private set; }
        public string Subtitle { get; private set; }
        public string Description { get; private set; }
        public string ImagePath { get; private set; }
    }
 
    public sealed class SampleDataSource
    {
        private static SampleDataSource _sampleDataSource = new SampleDataSource();
 
        private ObservableCollection<SampleDataGroup> _groups = new ObservableCollection<SampleDataGroup>();
        public ObservableCollection<SampleDataGroup> Groups
        {
            get { return this._groups; }
        }
 
        public static async Task<IEnumerable<SampleDataGroup>> GetGroupsAsync()
        {
            await _sampleDataSource.GetSampleDataAsync();
            return _sampleDataSource.Groups;
        }
 
        public static async Task<SampleDataGroup> GetGroupAsync(string uniqueId)
        {
            await _sampleDataSource.GetSampleDataAsync();
            var matches = _sampleDataSource.Groups.Where((group) => group.UniqueId.Equals(uniqueId));
            if (matches.Count() == 1) return matches.First();
            return null;
        }
 
        public static async Task<SampleDataItem> GetItemAsync(string uniqueId)
        {
            await _sampleDataSource.GetSampleDataAsync();
            var matches = _sampleDataSource.Groups.SelectMany(group => group.Items).Where((item) => item.UniqueId.Equals(uniqueId));
            if (matches.Count() == 1) return matches.First();
            return null;
        }
 
        private async Task GetSampleDataAsync()
        {
            if (this._groups.Count != 0)
                return;
 
            Uri dataUri = new Uri("ms-appx:///DataModel/SampleData.json");
 
            StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(dataUri);
            string jsonText = await FileIO.ReadTextAsync(file);
            JsonObject jsonObject = JsonObject.Parse(jsonText);
            JsonArray jsonArray = jsonObject["Groups"].GetArray();
 
            foreach (JsonValue groupValue in jsonArray)
            {
                JsonObject groupObject = groupValue.GetObject();
                SampleDataGroup group = new SampleDataGroup(groupObject["UniqueId"].GetString(),
                                                            groupObject["Title"].GetString(),
                                                            groupObject["Subtitle"].GetString(),
                                                            groupObject["ImagePath"].GetString(),
                                                            groupObject["Description"].GetString());
                this.Groups.Add(group);
            }
        }
    }
}
Необходимо сделать подобное на Android (используя VS 13 + Xamarin). Пытаюсь создать файл в проекте Android SampleDataSource.cs, но там нельзя добавлять пространство Windows.Data.Json и Windows.Storage для использования классов StorageFile, JsonObject и др. Необходимо в решение добавить другой проект, чтобы можно было это сделать? Или придется полностью переделывать парсер? Вообще получится использовать эти асинхронные методы для приложения Android?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2015, 15:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Парсинг JSON для Android (Программирование Android):

Парсинг Json - Программирование Android
Здравствуйте подcкажите как сделать: нужно данные из Json засунуть в массив, чтобы его дальше передавать по активностям. Json парсится в...

Парсинг JSON - Программирование Android
Доброй ночи! Есть задача распарсить JSON не зная изначально сколько и чего там находится, а так же не зная ни имен ни другой инфы, кроме...

Парсинг JSON - Программирование Android
Дали задание Мне надо воссоздать структуру JSON в сообственных объектах. Т.е. парсить надо не в String (например), а сделать вот что: -...

Парсинг json - Программирование Android
Здравствуйте! Имеется такой json код: { &quot;data&quot;: }И я его обрабатываю так: JSONArray urls = json.getJSONArray(&quot;data&quot;); Тогда, как мне...

Парсинг JSON - Программирование Android
Привет знатокам своего дела, у меня уже крик души! Какой час не выходит распарсить такой JSON ...

Парсинг JSON'а - Программирование Android
Здравствуйте! Недавно я на php+msql и Eclipse пробовал этот пример с сайта...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2015, 15:26
Привет! Вот еще темы с ответами:

Парсинг JSON объекта - Программирование Android
Здравствуйте, программисты! Помогите, пожалуйста, с решением задачи: Есть json-объект такого вида: {&quot;map&quot;: {&quot;firstname&quot;: null,...

Не выходит парсинг Json - Программирование Android
@Override protected void onPostExecute(String strJson) { super.onPostExecute(strJson); // выводим целиком полученную...

Парсинг JSON-файла - Программирование Android
Есть файл со следующим содержимым: т.е. только со значениями! Как его распарсить?? Этот способ не работает: void...

Json http парсинг. Массивы - Программирование Android
Здравствуйте. Нужно спарсить json данные. Есть php файл, который генерирует json код: http://silicon-valley-rus.com/server/get_json.php ...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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