protected override void Remove(RemoveOperation operation, JToken target)
        {
            var token = target.SelectPatchToken(operation.Path);

            if (token.Parent is JProperty)
            {
                token.Parent.Remove();
            }
            else
            {
                token.Remove();
            }
        }
        protected override void Remove(RemoveOperation operation, JToken target)
        {
            var tokens = target.SelectPatchTokens(operation.Path).ToList();

            if (tokens.Count == 0)
            {
                return;
            }

            foreach (var token in tokens)
            {
                if (token.Parent is JProperty)
                {
                    token.Parent.Remove();
                }
                else
                {
                    token.Remove();
                }
            }
        }