Exemplo n.º 1
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);
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
        private TraceJsonReader CreateTraceJsonReader(JsonReader reader)
        {
            TraceJsonReader traceJsonReader = new TraceJsonReader(reader);

            if (reader.TokenType != JsonToken.None)
            {
                traceJsonReader.WriteCurrentToken();
            }
            return(traceJsonReader);
        }
Exemplo n.º 4
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            this.SetupReader(reader, out CultureInfo info, out Newtonsoft.Json.DateTimeZoneHandling? nullable, out Newtonsoft.Json.DateParseHandling? nullable2, out Newtonsoft.Json.FloatParseHandling? nullable3, out int?nullable4, out string str);
            TraceJsonReader reader2 = ((this.TraceWriter != null) && (this.TraceWriter.LevelFilter >= TraceLevel.Verbose)) ? new TraceJsonReader(reader) : null;

            if (reader2 == null)
            {
            }
            if (reader2 != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, reader2.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, info, nullable, nullable2, nullable3, nullable4, str);
            return(new JsonSerializerInternalReader(this).Deserialize(reader, objectType, this.CheckAdditionalContent));
        }
Exemplo n.º 5
0
        internal virtual void PopulateInternal(JsonReader reader, object target)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            ValidationUtils.ArgumentNotNull(target, "target");
            this.SetupReader(reader, out CultureInfo info, out Newtonsoft.Json.DateTimeZoneHandling? nullable, out Newtonsoft.Json.DateParseHandling? nullable2, out Newtonsoft.Json.FloatParseHandling? nullable3, out int?nullable4, out string str);
            TraceJsonReader reader2 = ((this.TraceWriter != null) && (this.TraceWriter.LevelFilter >= TraceLevel.Verbose)) ? new TraceJsonReader(reader) : null;

            if (reader2 == null)
            {
            }
            new JsonSerializerInternalReader(this).Populate(reader, target);
            if (reader2 != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, reader2.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, info, nullable, nullable2, nullable3, nullable4, str);
        }
Exemplo n.º 6
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);
        }
Exemplo n.º 7
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);
        }
Exemplo n.º 8
0
        // Token: 0x06000B1C RID: 2844 RVA: 0x00041388 File Offset: 0x0003F588
        internal virtual void PopulateInternal(JsonReader reader, object target)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            ValidationUtils.ArgumentNotNull(target, "target");
            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;

            new JsonSerializerInternalReader(this).Populate(traceJsonReader ?? reader, target);
            if (traceJsonReader != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);
        }
        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);
        }
Exemplo n.º 10
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);
        }
        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);
        }
Exemplo n.º 12
0
        public void TraceJsonReaderTest()
        {
            string json = @"{
  ""Array"": [
    ""String!"",
    ""2000-12-12T12:12:12Z"",
    ""2000-12-12T12:12:12Z"",
    ""2000-12-12T12:12:12+00:00"",
    ""U3RyaW5nIQ=="",
    1,
    1.1,
    9999999990000000000000000000000000000000000,
    null,
    undefined,
    new ctor(
      1
    )
    /*A comment*/
  ]
}";

            StringReader    sw          = new StringReader(json);
            JsonTextReader  w           = new JsonTextReader(sw);
            TraceJsonReader traceReader = new TraceJsonReader(w);

            traceReader.Read();
            Assert.AreEqual(JsonToken.StartObject, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.PropertyName, traceReader.TokenType);
            Assert.AreEqual("Array", traceReader.Value);

            traceReader.Read();
            Assert.AreEqual(JsonToken.StartArray, traceReader.TokenType);
            Assert.AreEqual(null, traceReader.Value);

            traceReader.ReadAsString();
            Assert.AreEqual(JsonToken.String, traceReader.TokenType);
            Assert.AreEqual('"', traceReader.QuoteChar);
            Assert.AreEqual("String!", traceReader.Value);

            // for great code coverage justice!
            traceReader.QuoteChar = '\'';
            Assert.AreEqual('\'', traceReader.QuoteChar);

            traceReader.ReadAsString();
            Assert.AreEqual(JsonToken.String, traceReader.TokenType);
            Assert.AreEqual("2000-12-12T12:12:12Z", traceReader.Value);

            traceReader.ReadAsDateTime();
            Assert.AreEqual(JsonToken.Date, traceReader.TokenType);
            Assert.AreEqual(new DateTime(2000, 12, 12, 12, 12, 12, DateTimeKind.Utc), traceReader.Value);

            traceReader.ReadAsDateTimeOffset();
            Assert.AreEqual(JsonToken.Date, traceReader.TokenType);
            Assert.AreEqual(new DateTimeOffset(2000, 12, 12, 12, 12, 12, TimeSpan.Zero), traceReader.Value);

            traceReader.ReadAsBytes();
            Assert.AreEqual(JsonToken.Bytes, traceReader.TokenType);
            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("String!"), (byte[])traceReader.Value);

            traceReader.ReadAsInt32();
            Assert.AreEqual(JsonToken.Integer, traceReader.TokenType);
            Assert.AreEqual(1, traceReader.Value);

            traceReader.ReadAsDecimal();
            Assert.AreEqual(JsonToken.Float, traceReader.TokenType);
            Assert.AreEqual(1.1m, traceReader.Value);

            traceReader.Read();
            Assert.AreEqual(JsonToken.Integer, traceReader.TokenType);
            Assert.AreEqual(typeof(BigInteger), traceReader.ValueType);
            Assert.AreEqual(BigInteger.Parse("9999999990000000000000000000000000000000000"), traceReader.Value);

            traceReader.Read();
            Assert.AreEqual(JsonToken.Null, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.Undefined, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.StartConstructor, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.Integer, traceReader.TokenType);
            Assert.AreEqual(1L, traceReader.Value);

            traceReader.Read();
            Assert.AreEqual(JsonToken.EndConstructor, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.Comment, traceReader.TokenType);
            Assert.AreEqual("A comment", traceReader.Value);

            traceReader.Read();
            Assert.AreEqual(JsonToken.EndArray, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.EndObject, traceReader.TokenType);

            Assert.IsFalse(traceReader.Read());

            traceReader.Close();

            Console.WriteLine(traceReader.GetJson());

            Assert.AreEqual(json, traceReader.GetJson());
        }
Exemplo n.º 13
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);
        }