public static JObject ToJson(this VObject obj, VdfJsonConversionSettings settings = null)
        {
            if (settings == null)
            {
                settings = new VdfJsonConversionSettings();
            }

            JObject resultObj = new JObject();

            foreach (VProperty prop in obj.Properties())
            {
                if (!resultObj.ContainsKey(prop.Key))
                {
                    resultObj.Add(prop.ToJson(settings));
                }
                else if (resultObj[prop.Key] is JValue)
                {
                    HandleValueDuplicateKey(resultObj, prop, settings);
                }
                else
                {
                    HandleObjectDuplicateKey(resultObj, prop, settings);
                }
            }

            return(resultObj);
        }