예제 #1
0
        internal virtual void PopulateInternal(JsonReader reader, object target)
        {
            ValidationUtils.ArgumentNotNull(reader, nameof(reader));
            ValidationUtils.ArgumentNotNull(target, nameof(target));

            // set serialization options onto reader
            CultureInfo          previousCulture;
            DateTimeZoneHandling?previousDateTimeZoneHandling;
            DateParseHandling?   previousDateParseHandling;
            FloatParseHandling?  previousFloatParseHandling;
            int?   previousMaxDepth;
            string previousDateFormatString;

            SetupReader(reader, out previousCulture, out previousDateTimeZoneHandling, out previousDateParseHandling, out previousFloatParseHandling, out previousMaxDepth, out previousDateFormatString);

            TraceJsonReader traceJsonReader = (TraceWriter != null && TraceWriter.LevelFilter >= TraceLevel.Verbose)
                ? new TraceJsonReader(reader)
                : null;

            JsonSerializerInternalReader serializerReader = new JsonSerializerInternalReader(this);

            serializerReader.Populate(traceJsonReader ?? reader, target);

            if (traceJsonReader != null)
            {
                TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader.GetDeserializedJsonMessage(), null);
            }

            ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);
        }
예제 #2
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            JsonSerializerInternalReader jsonSerializerInternalReader = new JsonSerializerInternalReader(this);

            return(jsonSerializerInternalReader.Deserialize(reader, objectType));
        }
예제 #3
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");

            // set serialization options onto reader
            CultureInfo previousCulture = null;

            if (_culture != null && !_culture.Equals(reader.Culture))
            {
                previousCulture = reader.Culture;
                reader.Culture  = _culture;
            }

            DateTimeZoneHandling?previousDateTimeZoneHandling = null;

            if (_dateTimeZoneHandling != null && reader.DateTimeZoneHandling != _dateTimeZoneHandling)
            {
                previousDateTimeZoneHandling = reader.DateTimeZoneHandling;
                reader.DateTimeZoneHandling  = _dateTimeZoneHandling.Value;
            }

            DateParseHandling?previousDateParseHandling = null;

            if (_dateParseHandling != null && reader.DateParseHandling != _dateParseHandling)
            {
                previousDateParseHandling = reader.DateParseHandling;
                reader.DateParseHandling  = _dateParseHandling.Value;
            }

            int?previousMaxDepth = null;

            if (_maxDepthSet && reader.MaxDepth != _maxDepth)
            {
                previousMaxDepth = reader.MaxDepth;
                reader.MaxDepth  = _maxDepth;
            }

            JsonSerializerInternalReader serializerReader = new JsonSerializerInternalReader(this);
            object value = serializerReader.Deserialize(reader, objectType, CheckAdditionalContent);

            // reset reader back to previous options
            if (previousCulture != null)
            {
                reader.Culture = previousCulture;
            }
            if (previousDateTimeZoneHandling != null)
            {
                reader.DateTimeZoneHandling = previousDateTimeZoneHandling.Value;
            }
            if (previousDateParseHandling != null)
            {
                reader.DateParseHandling = previousDateParseHandling.Value;
            }
            if (_maxDepthSet)
            {
                reader.MaxDepth = previousMaxDepth;
            }

            return(value);
        }
예제 #4
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");

            // set serialization options onto reader
            CultureInfo          previousCulture;
            DateTimeZoneHandling?previousDateTimeZoneHandling;
            DateParseHandling?   previousDateParseHandling;
            FloatParseHandling?  previousFloatParseHandling;
            int?   previousMaxDepth;
            string previousDateFormatString;

            SetupReader(reader, out previousCulture, out previousDateTimeZoneHandling, out previousDateParseHandling, out previousFloatParseHandling, out previousMaxDepth, out previousDateFormatString);

            TraceJsonReader traceJsonReader = (TraceWriter != null && TraceWriter.LevelFilter >= TraceLevel.Verbose)
                ? new TraceJsonReader(reader)
                : null;

            JsonSerializerInternalReader serializerReader = new JsonSerializerInternalReader(this);
            object value = serializerReader.Deserialize(traceJsonReader ?? reader, objectType, CheckAdditionalContent);

            if (traceJsonReader != null)
            {
                TraceWriter.Trace(TraceLevel.Verbose, "Deserialized JSON: " + Environment.NewLine + traceJsonReader.GetJson(), null);
            }

            ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);

            return(value);
        }
        public JsonSerializerProxy(JsonSerializerInternalReader serializerReader)
        {
            ValidationUtils.ArgumentNotNull(serializerReader, "serializerReader");

            _serializerReader = serializerReader;
            _serializer       = serializerReader.Serializer;
        }
예제 #6
0
        internal virtual void PopulateInternal(JsonReader reader, object target)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            ValidationUtils.ArgumentNotNull(target, "target");
            JsonSerializerInternalReader jsonSerializerInternalReader = new JsonSerializerInternalReader(this);

            jsonSerializerInternalReader.Populate(reader, target);
        }
예제 #7
0
        /// <summary>
        /// Deserializes the JSON to the specified .NET type.
        /// </summary>
        /// <typeparam name="T">The type of the object to deserialize to.</typeparam>
        /// <param name="value">The JSON to deserialize.</param>
        /// <returns>The deserialized object from the Json string.</returns>
        public static T DeserializeObject <T>(string value)
        {
            JsonSerializerInternalReader.Clear();
            var temdata = DeserializeObject <T>(value, (JsonSerializerSettings)null);

            JsonSerializerInternalReader.Clear();
            return(temdata);
        }
예제 #8
0
        public JsonFormatterConverter(JsonSerializerInternalReader reader, JsonISerializableContract contract, JsonProperty member)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            ValidationUtils.ArgumentNotNull(contract, "contract");

            _reader   = reader;
            _contract = contract;
            _member   = member;
        }
예제 #9
0
 public JsonFormatterConverter(
     JsonSerializerInternalReader reader,
     JsonISerializableContract contract,
     JsonProperty member)
 {
     ValidationUtils.ArgumentNotNull((object)reader, nameof(reader));
     ValidationUtils.ArgumentNotNull((object)contract, nameof(contract));
     this._reader   = reader;
     this._contract = contract;
     this._member   = member;
 }
예제 #10
0
        internal virtual void PopulateInternal(JsonReader reader, object target)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            ValidationUtils.ArgumentNotNull(target, "target");

            // set serialization options onto reader
            CultureInfo          previousCulture;
            DateTimeZoneHandling?previousDateTimeZoneHandling;
            DateParseHandling?   previousDateParseHandling;
            FloatParseHandling?  previousFloatParseHandling;
            int?   previousMaxDepth;
            string previousDateFormatString;

            SetupReader(reader, out previousCulture, out previousDateTimeZoneHandling, out previousDateParseHandling, out previousFloatParseHandling, out previousMaxDepth, out previousDateFormatString);

            JsonSerializerInternalReader serializerReader = new JsonSerializerInternalReader(this);

            serializerReader.Populate(reader, target);

            ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);
        }
예제 #11
0
        internal virtual object DeserializeInternal([Nullable(1)] JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            CultureInfo          previousCulture;
            DateTimeZoneHandling?previousDateTimeZoneHandling;
            DateParseHandling?   previousDateParseHandling;
            FloatParseHandling?  previousFloatParseHandling;
            int?   previousMaxDepth;
            string previousDateFormatString;

            this.SetupReader(reader, out previousCulture, out previousDateTimeZoneHandling, out previousDateParseHandling, out previousFloatParseHandling, out previousMaxDepth, out previousDateFormatString);
            TraceJsonReader traceJsonReader = (this.TraceWriter != null && this.TraceWriter.LevelFilter >= TraceLevel.Verbose) ? this.CreateTraceJsonReader(reader) : null;
            object          result          = new JsonSerializerInternalReader(this).Deserialize(traceJsonReader ?? reader, objectType, this.CheckAdditionalContent);

            if (traceJsonReader != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);
            return(result);
        }
예제 #12
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");

            // set serialization options onto reader
            CultureInfo          previousCulture;
            DateTimeZoneHandling?previousDateTimeZoneHandling;
            DateParseHandling?   previousDateParseHandling;
            FloatParseHandling?  previousFloatParseHandling;
            int?   previousMaxDepth;
            string previousDateFormatString;

            SetupReader(reader, out previousCulture, out previousDateTimeZoneHandling, out previousDateParseHandling, out previousFloatParseHandling, out previousMaxDepth, out previousDateFormatString);

            JsonSerializerInternalReader serializerReader = new JsonSerializerInternalReader(this);
            object value = serializerReader.Deserialize(reader, objectType, CheckAdditionalContent);

            ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);

            return(value);
        }
예제 #13
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull((object)reader, nameof(reader));
            CultureInfo          previousCulture;
            DateTimeZoneHandling?previousDateTimeZoneHandling;
            DateParseHandling?   previousDateParseHandling;
            FloatParseHandling?  previousFloatParseHandling;
            int?   previousMaxDepth;
            string previousDateFormatString;

            this.SetupReader(reader, out previousCulture, out previousDateTimeZoneHandling, out previousDateParseHandling, out previousFloatParseHandling, out previousMaxDepth, out previousDateFormatString);
            TraceJsonReader traceJsonReader = this.TraceWriter == null || this.TraceWriter.LevelFilter < TraceLevel.Verbose ? (TraceJsonReader)null : new TraceJsonReader(reader);
            object          obj             = new JsonSerializerInternalReader(this).Deserialize((JsonReader)traceJsonReader ?? reader, objectType, this.CheckAdditionalContent);

            if (traceJsonReader != null)
            {
                this.TraceWriter.Trace_(TraceLevel.Verbose, traceJsonReader.GetDeserializedJsonMessage(), (Exception)null);
            }
            this.ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);
            return(obj);
        }
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            CultureInfo cultureInfo;

            Newtonsoft.Json.DateTimeZoneHandling?nullable;
            Newtonsoft.Json.DateParseHandling?   nullable1;
            Newtonsoft.Json.FloatParseHandling?  nullable2;
            int?            nullable3;
            string          str;
            TraceJsonReader traceJsonReader;

            ValidationUtils.ArgumentNotNull(reader, "reader");
            this.SetupReader(reader, out cultureInfo, out nullable, out nullable1, out nullable2, out nullable3, out str);
            if (this.TraceWriter == null || this.TraceWriter.LevelFilter < TraceLevel.Verbose)
            {
                traceJsonReader = null;
            }
            else
            {
                traceJsonReader = new TraceJsonReader(reader);
            }
            TraceJsonReader traceJsonReader1 = traceJsonReader;
            JsonSerializerInternalReader jsonSerializerInternalReader = new JsonSerializerInternalReader(this);
            JsonReader jsonReader = traceJsonReader1;

            if (jsonReader == null)
            {
                jsonReader = reader;
            }
            object obj = jsonSerializerInternalReader.Deserialize(jsonReader, objectType, this.CheckAdditionalContent);

            if (traceJsonReader1 != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader1.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, cultureInfo, nullable, nullable1, nullable2, nullable3, str);
            return(obj);
        }
예제 #15
0
        internal virtual void PopulateInternal(JsonReader reader, object target)
        {
            CultureInfo cultureInfo;

            Newtonsoft.Json.DateTimeZoneHandling?nullable;
            Newtonsoft.Json.DateParseHandling?   nullable1;
            Newtonsoft.Json.FloatParseHandling?  nullable2;
            int?            nullable3;
            string          str;
            TraceJsonReader traceJsonReader;

            ValidationUtils.ArgumentNotNull(reader, "reader");
            ValidationUtils.ArgumentNotNull(target, "target");
            this.SetupReader(reader, out cultureInfo, out nullable, out nullable1, out nullable2, out nullable3, out str);
            if (this.TraceWriter == null || this.TraceWriter.LevelFilter < TraceLevel.Verbose)
            {
                traceJsonReader = null;
            }
            else
            {
                traceJsonReader = this.CreateTraceJsonReader(reader);
            }
            TraceJsonReader traceJsonReader1 = traceJsonReader;
            JsonSerializerInternalReader jsonSerializerInternalReader = new JsonSerializerInternalReader(this);
            JsonReader jsonReader = traceJsonReader1;

            if (jsonReader == null)
            {
                jsonReader = reader;
            }
            jsonSerializerInternalReader.Populate(jsonReader, target);
            if (traceJsonReader1 != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader1.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, cultureInfo, nullable, nullable1, nullable2, nullable3, str);
        }
예제 #16
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull((object)reader, "reader");
            CultureInfo cultureInfo = (CultureInfo)null;

            if (this._culture != null && reader.Culture != this._culture)
            {
                cultureInfo    = reader.Culture;
                reader.Culture = this._culture;
            }
            DateTimeZoneHandling?nullable1 = new DateTimeZoneHandling?();

            if (this._dateTimeZoneHandling.HasValue)
            {
                DateTimeZoneHandling timeZoneHandling = reader.DateTimeZoneHandling;
                DateTimeZoneHandling?nullable2        = this._dateTimeZoneHandling;
                if ((timeZoneHandling != nullable2.GetValueOrDefault() ? 1 : (!nullable2.HasValue ? 1 : 0)) != 0)
                {
                    nullable1 = new DateTimeZoneHandling?(reader.DateTimeZoneHandling);
                    reader.DateTimeZoneHandling = this._dateTimeZoneHandling.Value;
                }
            }
            DateParseHandling?nullable3 = new DateParseHandling?();

            if (this._dateParseHandling.HasValue)
            {
                DateParseHandling dateParseHandling = reader.DateParseHandling;
                DateParseHandling?nullable2         = this._dateParseHandling;
                if ((dateParseHandling != nullable2.GetValueOrDefault() ? 1 : (!nullable2.HasValue ? 1 : 0)) != 0)
                {
                    nullable3 = new DateParseHandling?(reader.DateParseHandling);
                    reader.DateParseHandling = this._dateParseHandling.Value;
                }
            }
            int?nullable4 = new int?();

            if (this._maxDepthSet)
            {
                int?maxDepth  = reader.MaxDepth;
                int?nullable2 = this._maxDepth;
                if ((maxDepth.GetValueOrDefault() != nullable2.GetValueOrDefault() ? 1 : (maxDepth.HasValue != nullable2.HasValue ? 1 : 0)) != 0)
                {
                    nullable4       = reader.MaxDepth;
                    reader.MaxDepth = this._maxDepth;
                }
            }
            object obj = new JsonSerializerInternalReader(this).Deserialize(reader, objectType, this.CheckAdditionalContent);

            if (cultureInfo != null)
            {
                reader.Culture = cultureInfo;
            }
            if (nullable1.HasValue)
            {
                reader.DateTimeZoneHandling = nullable1.Value;
            }
            if (nullable3.HasValue)
            {
                reader.DateParseHandling = nullable3.Value;
            }
            if (this._maxDepthSet)
            {
                reader.MaxDepth = nullable4;
            }
            return(obj);
        }
예제 #17
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            CultureInfo cultureInfo = null;

            if (this._culture != null && !this._culture.Equals(reader.Culture))
            {
                cultureInfo    = reader.Culture;
                reader.Culture = this._culture;
            }
            DateTimeZoneHandling?dateTimeZoneHandling = null;

            if (this._dateTimeZoneHandling.HasValue && reader.DateTimeZoneHandling != this._dateTimeZoneHandling)
            {
                dateTimeZoneHandling        = new DateTimeZoneHandling?(reader.DateTimeZoneHandling);
                reader.DateTimeZoneHandling = this._dateTimeZoneHandling.Value;
            }
            DateParseHandling?dateParseHandling = null;

            if (this._dateParseHandling.HasValue && reader.DateParseHandling != this._dateParseHandling)
            {
                dateParseHandling        = new DateParseHandling?(reader.DateParseHandling);
                reader.DateParseHandling = this._dateParseHandling.Value;
            }
            FloatParseHandling?floatParseHandling = null;

            if (this._floatParseHandling.HasValue && reader.FloatParseHandling != this._floatParseHandling)
            {
                floatParseHandling        = new FloatParseHandling?(reader.FloatParseHandling);
                reader.FloatParseHandling = this._floatParseHandling.Value;
            }
            int?maxDepth = null;

            if (this._maxDepthSet && reader.MaxDepth != this._maxDepth)
            {
                maxDepth        = reader.MaxDepth;
                reader.MaxDepth = this._maxDepth;
            }
            TraceJsonReader traceJsonReader = (this.TraceWriter != null && this.TraceWriter.LevelFilter >= TraceLevel.Verbose) ? new TraceJsonReader(reader) : null;
            JsonSerializerInternalReader jsonSerializerInternalReader = new JsonSerializerInternalReader(this);
            object result = jsonSerializerInternalReader.Deserialize(traceJsonReader ?? reader, objectType, this.CheckAdditionalContent);

            if (traceJsonReader != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, "Deserialized JSON: " + Environment.NewLine + traceJsonReader.GetJson(), null);
            }
            if (cultureInfo != null)
            {
                reader.Culture = cultureInfo;
            }
            if (dateTimeZoneHandling.HasValue)
            {
                reader.DateTimeZoneHandling = dateTimeZoneHandling.Value;
            }
            if (dateParseHandling.HasValue)
            {
                reader.DateParseHandling = dateParseHandling.Value;
            }
            if (floatParseHandling.HasValue)
            {
                reader.FloatParseHandling = floatParseHandling.Value;
            }
            if (this._maxDepthSet)
            {
                reader.MaxDepth = maxDepth;
            }
            return(result);
        }
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");

            // set serialization options onto reader
            CultureInfo previousCulture = null;

            if (_culture != null && !_culture.Equals(reader.Culture))
            {
                previousCulture = reader.Culture;
                reader.Culture  = _culture;
            }

            DateTimeZoneHandling?previousDateTimeZoneHandling = null;

            if (_dateTimeZoneHandling != null && reader.DateTimeZoneHandling != _dateTimeZoneHandling)
            {
                previousDateTimeZoneHandling = reader.DateTimeZoneHandling;
                reader.DateTimeZoneHandling  = _dateTimeZoneHandling.Value;
            }

            DateParseHandling?previousDateParseHandling = null;

            if (_dateParseHandling != null && reader.DateParseHandling != _dateParseHandling)
            {
                previousDateParseHandling = reader.DateParseHandling;
                reader.DateParseHandling  = _dateParseHandling.Value;
            }

            FloatParseHandling?previousFloatParseHandling = null;

            if (_floatParseHandling != null && reader.FloatParseHandling != _floatParseHandling)
            {
                previousFloatParseHandling = reader.FloatParseHandling;
                reader.FloatParseHandling  = _floatParseHandling.Value;
            }

            int?previousMaxDepth = null;

            if (_maxDepthSet && reader.MaxDepth != _maxDepth)
            {
                previousMaxDepth = reader.MaxDepth;
                reader.MaxDepth  = _maxDepth;
            }

            TraceJsonReader traceJsonReader = (TraceWriter != null && TraceWriter.LevelFilter >= TraceLevel.Verbose)
                                          ? new TraceJsonReader(reader)
                                          : null;

            JsonSerializerInternalReader serializerReader = new JsonSerializerInternalReader(this);
            object value = serializerReader.Deserialize(traceJsonReader ?? reader, objectType, CheckAdditionalContent);

            if (traceJsonReader != null)
            {
                TraceWriter.Trace(TraceLevel.Verbose, "Deserialized JSON: " + Environment.NewLine + traceJsonReader.GetJson(), null);
            }

            // reset reader back to previous options
            if (previousCulture != null)
            {
                reader.Culture = previousCulture;
            }
            if (previousDateTimeZoneHandling != null)
            {
                reader.DateTimeZoneHandling = previousDateTimeZoneHandling.Value;
            }
            if (previousDateParseHandling != null)
            {
                reader.DateParseHandling = previousDateParseHandling.Value;
            }
            if (previousFloatParseHandling != null)
            {
                reader.FloatParseHandling = previousFloatParseHandling.Value;
            }
            if (_maxDepthSet)
            {
                reader.MaxDepth = previousMaxDepth;
            }

            return(value);
        }
예제 #19
0
 public JsonSerializerProxy(JsonSerializerInternalReader serializerReader)
 {
     ValidationUtils.ArgumentNotNull((object)serializerReader, nameof(serializerReader));
     this._serializerReader = serializerReader;
     this._serializer       = serializerReader.Serializer;
 }