Example #1
0
        /// <summary>
        /// Parses a string containing a JSON Pointer.
        /// </summary>
        /// <param name="source">The source string.</param>
        /// <returns>A <see cref="JsonPointer"/> instance.</returns>
        public static JsonPointer Parse(string source)
        {
            var pointer = new JsonPointer();

            var parts = source.Split('/');

            if (parts.Length == 0)
            {
                return(pointer);
            }


            if (parts[0] == "#")
            {
                pointer._usesHash = true;
            }
            else
            {
                parts = parts.Skip(1).ToArray();
            }

            pointer.AddRange(parts.SkipWhile(s => s == "#").Select(_Unescape));

            return(pointer);
        }
Example #2
0
        /// <summary>
        /// Creates a copy of the pointer and appends new segments.
        /// </summary>
        /// <param name="append">The segments to append.</param>
        public JsonPointer CloneAndAppend(params string[] append)
        {
            var clone = new JsonPointer(this, Count + append.Length, _usesHash);

            clone.AddRange(append);

            return(clone);
        }
Example #3
0
        /// <summary>
        /// Creates a copy of the pointer and appends new segments.
        /// </summary>
        /// <param name="append">The segments to append.</param>
        public JsonPointer CloneAndAppend(params string[] append)
        {
            var clone = new JsonPointer(this)
            {
                _usesHash = _usesHash
            };

            clone.AddRange(append);

            return(clone);
        }