private static void ParseArray(JArray json, CustomConfigurationValue customConfiguration)
        {
            foreach (var element in json)
            {
                var configValue = new CustomConfigurationValue();
                customConfiguration.Values.Add(configValue);

                Parse(element, configValue);
            }
        }
        private static void ParseObject(JObject json, CustomConfigurationValue customConfiguration)
        {
            foreach (var child in json.Children())
            {
                var property    = (JProperty)child;
                var configValue = new CustomConfigurationValue {
                    Key = property.Name
                };
                customConfiguration.Values.Add(configValue);

                Parse(property.Value, configValue);
            }
        }
 private static void Parse(JToken jsonToken, CustomConfigurationValue customConfiguration)
 {
     if (jsonToken is JObject)
     {
         ParseObject((JObject)jsonToken, customConfiguration);
     }
     else if (jsonToken is JArray)
     {
         ParseArray((JArray)jsonToken, customConfiguration);
     }
     else
     {
         ParseToken(jsonToken, customConfiguration);
     }
 }
 private static void ParseToken(JToken json, CustomConfigurationValue customConfiguration)
 {
     customConfiguration.Value = json.Value <string>();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonCustomConfiguration"/> class.
 /// </summary>
 /// <param name="jsonObject">The JSON object.</param>
 public JsonCustomConfiguration(JObject jsonObject)
 {
     _value = new CustomConfigurationValue();
     Parse(jsonObject, _value);
 }