Beispiel #1
0
        private static IJsonWrapper ReadValue(WrapperFactory factory, JsonReader reader)
        {
            reader.Read();
            if (reader.Token == JsonToken.ArrayEnd || reader.Token == JsonToken.Null)
            {
                return(null);
            }
            IJsonWrapper jsonWrapper = factory();

            if (reader.Token == JsonToken.String)
            {
                jsonWrapper.SetString((string)reader.Value);
                return(jsonWrapper);
            }
            if (reader.Token == JsonToken.Double)
            {
                jsonWrapper.SetDouble((double)reader.Value);
                return(jsonWrapper);
            }
            if (reader.Token == JsonToken.Int)
            {
                jsonWrapper.SetInt((int)reader.Value);
                return(jsonWrapper);
            }
            if (reader.Token == JsonToken.Long)
            {
                jsonWrapper.SetLong((long)reader.Value);
                return(jsonWrapper);
            }
            if (reader.Token == JsonToken.Boolean)
            {
                jsonWrapper.SetBoolean((bool)reader.Value);
                return(jsonWrapper);
            }
            if (reader.Token == JsonToken.ArrayStart)
            {
                jsonWrapper.SetJsonType(JsonType.Array);
                while (true)
                {
                    IJsonWrapper jsonWrapper2 = JsonMapper.ReadValue(factory, reader);
                    if (reader.Token == JsonToken.ArrayEnd && jsonWrapper2 == null)
                    {
                        break;
                    }
                    jsonWrapper.Add(jsonWrapper2);
                }
            }
            else if (reader.Token == JsonToken.ObjectStart)
            {
                jsonWrapper.SetJsonType(JsonType.Object);
                while (true)
                {
                    reader.Read();
                    if (reader.Token == JsonToken.ObjectEnd)
                    {
                        break;
                    }
                    string text = (string)reader.Value;
                    jsonWrapper.set_Item(text, JsonMapper.ReadValue(factory, reader));
                }
            }
            return(jsonWrapper);
        }