Xamarin Forms: Как анализировать данные из локального файла JSON? - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть локальный файл JSON.Мне нужно проанализировать данные из этого файла на основе даты.

Формат данных в файле JSON:

{"01-01-2017":{"color":"white","message":"The Octave Day of Christmas Solemnity of the Blessed Virgin Mary, the Mother of God Lectionary: 18"},"02-01-2017":{"color":"white","message":"Memorial of Saints Basil the Great and Gregory Nazianzen, Bishops and Doctors of the Church Lectionary: 205"},"03-01-2017":{"color":"white","message":"Christmas Weekday Lectionary: 206"},"04-01-2017":{"color":"white","message":"Memorial of Saint Elizabeth Ann Seton, Religious Lectionary: 207"},"05-01-2017":{"color":"white","message":"Memorial of Saint John Neumann, Bishop Lectionary: 208"},"06-01-2017":{"color":"white","message":"Christmas Weekday Lectionary: 209"},"07-01-2017":{"color":"white","message":"Christmas Weekday Lectionary: 210"},"08-01-2017":{"color":"white","message":"The Epiphany of the Lord Lectionary: 20"},"09-01-2017":{"color":"white","message":"The Baptism of the Lord Lectionary: 21"},"10-01-2017":{"color":"darkseagreen","message":"Tuesday of the First Week in Ordinary Time Lectionary: 306"}}

На основании даты, которую мне нужно проанализировать соответствующее сообщение.Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Сначала создайте класс для ваших конкретных данных:

public class JsonContent{
    public string color {get; set;}

    public string message {get; set;}
}

Затем создайте список словаря:

List<Dictionary<DateTime,JsonContent>> jsonData = new List<Dictionary<DateTime, JsonContent>>();

Выполните анализ данных в переменной:

jsonData = JsonConvert.DeserializeObject<List<Dictionary<DateTime, JsonContent>>>(yourJSON);

Теперь у вас есть все данные:

foreach (var item in jsonData)
{
    //your date - item.key;
    //your data inside - item.color and item.message
}

Я не уверен, что это сработает:)

0 голосов
/ 25 сентября 2019

Решение:

  1. Добавлен файл JSON в проект PCL и для параметра «Действие сборки» задано значение «Встроенный ресурс».
  2. Получить значение на основе даты.

    void GetJsonData(string date)
    {
    try
    {
        string jsonFileName = "prayers.json";
        var assembly = typeof(HomePage).GetTypeInfo().Assembly;
    
        Stream stream = assembly.GetManifestResourceStream($"{assembly.GetName().Name}.{jsonFileName}");
        using (var reader = new System.IO.StreamReader(stream))
        {
            var jsonString = reader.ReadToEnd();
    
            JObject obj = JObject.Parse(jsonString);
    
            var color = obj[date]["color"];
            var message = obj[date]["message"];
        }
    }
    catch(Exception e)
    {
        Debug.WriteLine("PrayerException:>"+e);
    }
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...