public static IJsonWrapper ToWrapper(WrapperTestMethodory TestMethodory, string json) { JsonReader reader = new JsonReader(json); return(ReadValue(TestMethodory, reader)); }
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); }
public static IJsonWrapper ToWrapper(WrapperTestMethodory TestMethodory, JsonReader reader) { return(ReadValue(TestMethodory, reader)); }