Пример #1
0
        public static IJsonWrapper ToWrapper(WrapperTestMethodory TestMethodory,
                                             string json)
        {
            JsonReader reader = new JsonReader(json);

            return(ReadValue(TestMethodory, reader));
        }
Пример #2
0
        private static IJsonWrapper ReadValue(WrapperTestMethodory TestMethodory,
                                              JsonReader reader)
        {
            reader.Read();

            if (reader.Token == JsonToken.ArrayEnd ||
                reader.Token == JsonToken.Null)
            {
                return(null);
            }

            IJsonWrapper instance = TestMethodory();

            if (reader.Token == JsonToken.String)
            {
                instance.SetString((string)reader.Value);
                return(instance);
            }

            if (reader.Token == JsonToken.Double)
            {
                instance.SetDouble((double)reader.Value);
                return(instance);
            }

            if (reader.Token == JsonToken.Int)
            {
                instance.SetInt((int)reader.Value);
                return(instance);
            }

            if (reader.Token == JsonToken.Long)
            {
                instance.SetLong((long)reader.Value);
                return(instance);
            }

            if (reader.Token == JsonToken.Boolean)
            {
                instance.SetBoolean((bool)reader.Value);
                return(instance);
            }

            if (reader.Token == JsonToken.ArrayStart)
            {
                instance.SetJsonType(JsonType.Array);

                while (true)
                {
                    IJsonWrapper item = ReadValue(TestMethodory, reader);
                    if (item == null && reader.Token == JsonToken.ArrayEnd)
                    {
                        break;
                    }

                    ((IList)instance).Add(item);
                }
            }
            else if (reader.Token == JsonToken.ObjectStart)
            {
                instance.SetJsonType(JsonType.Object);

                while (true)
                {
                    reader.Read();

                    if (reader.Token == JsonToken.ObjectEnd)
                    {
                        break;
                    }

                    string property = (string)reader.Value;

                    ((IDictionary <string, JsonData>)instance)[property] = (JsonData)ReadValue(
                        TestMethodory, reader);
                }
            }

            return(instance);
        }
Пример #3
0
 public static IJsonWrapper ToWrapper(WrapperTestMethodory TestMethodory,
                                      JsonReader reader)
 {
     return(ReadValue(TestMethodory, reader));
 }