ReadProperties() public method

Read the properties of a json object. The resulting collection contains the name of each property. As the collection is enumerated, for each property name, the reader is positioned at the beginning of the property's value. The caller is expected to parse the value, calling Read or ReadContent one or more times, before continuing to enumerate the collection.
If the JSON object is malformed.
public ReadProperties ( string path ) : IEnumerable
path string /// The path to the current object. Used for error reporting. ///
return IEnumerable
示例#1
0
        private object Read(JsonReader reader, IJsonSerializeOperationInfo info, string path)
        {
            if (reader.NodeType == JsonNodeType.Null)
            {
                return(null);
            }

            var dictionary = _createDictionary();

            foreach (var keyString in reader.ReadProperties(path))
            {
                var key   = _deserializeKey(keyString, info, path);
                var value = _valueSerializer.DeserializeObject(reader, info, path.AppendProperty(keyString));

                var jsonNumber = value as JsonNumber;
                if (jsonNumber != null)
                {
                    value = jsonNumber.DoubleValue;
                }

                _addToDictionary(dictionary, key, value);
            }

            return(dictionary);
        }
示例#2
0
        private object DeserializeJsonObject(JsonReader reader, IJsonSerializeOperationInfo info)
        {
            var jsonObject = new JsonObject(info);

            foreach (var propertyName in reader.ReadProperties())
            {
                jsonObject.Add(propertyName, DeserializeObject(reader, info));
            }

            return(jsonObject);
        }
        private object Read(JsonReader reader, IJsonSerializeOperationInfo info)
        {
            var factory = _createObjectFactory.Value.Invoke();

            foreach (var propertyName in reader.ReadProperties())
            {
                if (!factory.SetValue(reader, propertyName, info))
                {
                    reader.Discard();
                }
            }

            return(factory.GetInstance());
        }
示例#4
0
        private object Read(JsonReader reader, IJsonSerializeOperationInfo info, string path)
        {
            var factory = _createObjectFactory.Value.Invoke();

            foreach (var propertyName in reader.ReadProperties(path))
            {
                var propertyPath = path.AppendProperty(propertyName);

                if (!factory.SetValue(reader, propertyName, info, propertyPath))
                {
                    reader.Discard(propertyPath);
                }
            }

            return(factory.GetInstance());
        }
示例#5
0
        private object Read(JsonReader reader, IJsonSerializeOperationInfo info)
        {
            var dictionary = _createDictionary();

            foreach (var keyString in reader.ReadProperties())
            {
                var key   = _deserializeKey(keyString, info);
                var value = _valueSerializer.DeserializeObject(reader, info);

                var jsonNumber = value as JsonNumber;
                if (jsonNumber != null)
                {
                    value = jsonNumber.DoubleValue;
                }

                _addToDictionary(dictionary, key, value);
            }

            return(dictionary);
        }
        private object DeserializeJsonObject(JsonReader reader, IJsonSerializeOperationInfo info, string path)
        {
            var jsonObject = new JsonObject(info);

            foreach (var propertyName in reader.ReadProperties(path))
            {
                jsonObject.Add(propertyName, DeserializeObject(reader, info, path.AppendProperty(propertyName)));
            }

            return jsonObject;
        }
        private object Read(JsonReader reader, IJsonSerializeOperationInfo info, string path)
        {
            var factory = _createObjectFactory.Value.Invoke();

            foreach (var propertyName in reader.ReadProperties(path))
            {
                var propertyPath = path.AppendProperty(propertyName);

                if (!factory.SetValue(reader, propertyName, info, propertyPath))
                {
                    reader.Discard(propertyPath);
                }
            }

            return factory.GetInstance();
        }
        private object Read(JsonReader reader, IJsonSerializeOperationInfo info)
        {
            var factory = _createObjectFactory.Value.Invoke();

            foreach (var propertyName in reader.ReadProperties())
            {
                if (!factory.SetValue(reader, propertyName, info))
                {
                    reader.Discard();
                }
            }

            return factory.GetInstance();
        }
        private object Read(JsonReader reader, IJsonSerializeOperationInfo info)
        {
            var dictionary = _createDictionary();

            foreach (var keyString in reader.ReadProperties())
            {
                var key = _deserializeKey(keyString, info);
                var value = _valueSerializer.DeserializeObject(reader, info);

                var jsonNumber = value as JsonNumber;
                if (jsonNumber != null)
                {
                    value = jsonNumber.DoubleValue;
                }

                _addToDictionary(dictionary, key, value);
            }

            return dictionary;
        }