示例#1
0
        private object GetObject(JsonReader reader /*, Type objectType*/)
        {
            if (RecursionLimit > 0 && reader.CurrentRecursionLevel >= RecursionLimit)
            {
                throw new ArgumentException("RecursionLimit exceeded.");
            }

            object value;

            switch (reader.TokenType)
            {
            // populate a typed object or generic dictionary/array
            // depending upon whether an objectType was supplied
            case JsonToken.StartObject:
                //value = PopulateObject(reader/*, objectType*/);
                value = new DeserializerLazyDictionary(reader, this);
                break;

            case JsonToken.StartArray:
                value = PopulateList(reader /*, objectType*/);
                break;

            case JsonToken.Integer:
            case JsonToken.Float:
            case JsonToken.String:
            case JsonToken.Boolean:
            case JsonToken.Date:
                //value = EnsureType(reader.Value, objectType);
                value = reader.Value;
                break;

            case JsonToken.Constructor:
                value = reader.Value.ToString();
                break;

            case JsonToken.Null:
            case JsonToken.Undefined:
                value = null;
                break;

            default:
                throw new JsonSerializationException("Unexpected token whil deserializing object: " + reader.TokenType);
            }

            return(value);
        }
示例#2
0
        private object GetObject(JsonReader reader/*, Type objectType*/)
        {
            if (RecursionLimit > 0 && reader.CurrentRecursionLevel >= RecursionLimit) {
                throw new ArgumentException ("RecursionLimit exceeded.");
            }

            object value;

            switch (reader.TokenType) {
            // populate a typed object or generic dictionary/array
            // depending upon whether an objectType was supplied
            case JsonToken.StartObject:
                //value = PopulateObject(reader/*, objectType*/);
                value = new DeserializerLazyDictionary (reader, this);
                break;
            case JsonToken.StartArray:
                value = PopulateList (reader/*, objectType*/);
                break;
            case JsonToken.Integer:
            case JsonToken.Float:
            case JsonToken.String:
            case JsonToken.Boolean:
            case JsonToken.Date:
                //value = EnsureType(reader.Value, objectType);
                value = reader.Value;
                break;
            case JsonToken.Constructor:
                value = reader.Value.ToString ();
                break;
            case JsonToken.Null:
            case JsonToken.Undefined:
                value = null;
                break;
            default:
                throw new JsonSerializationException ("Unexpected token whil deserializing object: " + reader.TokenType);
            }

            return value;
        }