private JsonDotNetJsonObject(IJsonNodeCollection children, JToken value = null, string key = null)
        {
            Children   = children;
            this.value = value;
            Key        = key;

            SetChildrenParent();
        }
        public void Children()
        {
            IJsonObject tree = serializer.Deserialize("{name:\"User 0\"}");

            IJsonNodeCollection children   = tree.Children;
            IJsonObject         nameObject = children["name"];
            var name = nameObject.Value <string>();

            Assert.AreEqual("User 0", name);
        }
        private static JsonDotNetJsonObject ParseToken(JToken token)
        {
            switch (token.Type)
            {
            case JTokenType.Object:
                IJsonNodeCollection children = ParseChildren(token);
                return(new JsonDotNetJsonObject(children, token));

            case JTokenType.Array:
                IJsonNodeCollection items = ParseArrayItems(token);
                return(new JsonDotNetJsonObject(items));
            }

            return(new JsonDotNetJsonObject(token));
        }
        private static IJsonObject ParseToken(KeyValuePair <string, JToken> token)
        {
            string key = token.Key;

            switch (token.Value.Type)
            {
            case JTokenType.Object:
                IJsonNodeCollection children = ParseChildren(token.Value);
                return(new JsonDotNetJsonObject(children, token.Value, key));

            case JTokenType.Array:
                IJsonNodeCollection items = ParseArrayItems(token.Value);
                return(new JsonDotNetJsonObject(items, key: key));
            }

            return(new JsonDotNetJsonObject(token.Value, key));
        }