Esempio n. 1
0
        /// <summary>
        /// Parses a json array
        /// </summary>
        /// <typeparam name="T">The type being parsed</typeparam>
        /// <param name="rawJson">The raw json</param>
        /// <param name="listName">The name of the list</param>
        /// <param name="converter">A delegate that can parse each object of type T</param>
        /// <param name="settings">The settings.</param>
        /// <returns>
        /// A list of type T of each of the items in the array
        /// </returns>
        public List <T> ParseList <T>(JToken rawJson, string listName, MusicClientCommand.JTokenConversionDelegate <T> converter, IMusicClientSettings settings)
        {
            var results = new List <T>();

            foreach (JToken item in rawJson.Children())
            {
                T result = converter(item, settings);
                if (result != null)
                {
                    results.Add(result);
                }
            }

            return(results);
        }
Esempio n. 2
0
        /// <summary>
        /// Parses a named json list.
        /// </summary>
        /// <typeparam name="T">The type being parsed</typeparam>
        /// <param name="rawJson">The raw json</param>
        /// <param name="listName">The name of the list if appropriate eg. items</param>
        /// <param name="converter">A delegate that can parse each object of type T</param>
        /// <param name="settings">The settings.</param>
        /// <returns>
        /// A list of type T
        /// </returns>
        public List <T> ParseList <T>(JToken rawJson, string listName, MusicClientCommand.JTokenConversionDelegate <T> converter, IMusicClientSettings settings)
        {
            List <T> results = new List <T>();
            JArray   items   = rawJson.Value <JArray>(listName);

            if (items != null)
            {
                foreach (JToken item in rawJson.Value <JArray>(listName))
                {
                    T result = converter(item, settings);
                    if (result != null)
                    {
                        results.Add(result);
                    }
                }
            }

            return(results);
        }