/// <summary> /// Reads the value. /// </summary> /// <param name="factory">The factory.</param> /// <param name="reader">The reader.</param> /// <returns></returns> private static IJsonWrapper ReadValue(WrapperFactory factory, JsonReader reader) { reader.Read(); if (reader.Token == JsonToken.ArrayEnd || reader.Token == JsonToken.Null) { return(null); } IJsonWrapper instance = factory(); 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.Decimal) { instance.SetDecimal((decimal)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(factory, 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)instance)[property] = ReadValue( factory, reader); } } return(instance); }
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 value = JsonMapper.ReadValue(factory, reader); if (reader.Token == JsonToken.ArrayEnd) { break; } jsonWrapper.Add(value); } } else if (reader.Token == JsonToken.ObjectStart) { jsonWrapper.SetJsonType(JsonType.Object); while (true) { reader.Read(); if (reader.Token == JsonToken.ObjectEnd) { break; } string key = (string)reader.Value; ((IDictionary)jsonWrapper)[key] = JsonMapper.ReadValue(factory, reader); } } return(jsonWrapper); }
private static IJsonWrapper ReadValue(WrapperFactory factory, JsonReader reader) { reader.Read(); if (reader.Token == JsonToken.ArrayEnd || reader.Token == JsonToken.Null) { return(null); } IJsonWrapper instance = factory(); 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.UInt) { instance.SetUInt((uint)reader.Value); return(instance); } if (reader.Token == JsonToken.Long) { instance.SetLong((long)reader.Value); return(instance); } if (reader.Token == JsonToken.ULong) { instance.SetULong((ulong)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(factory, reader); // nij - added check to see if the item is not null. This is to handle arrays within arrays. // In those cases when the outer array read the inner array an item was returned back the current // reader.Token is at the ArrayEnd for the inner array. 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)instance)[property] = ReadValue( factory, reader); } } return(instance); }
private static IJsonWrapper ReadValue(WrapperFactory factory, JsonReader reader) { reader.Read(); if ((reader.Token == JsonToken.ArrayEnd) || (reader.Token == JsonToken.Null)) { return(null); } IJsonWrapper wrapper = factory(); if (reader.Token == JsonToken.String) { wrapper.SetString((string)reader.Value); return(wrapper); } if (reader.Token == JsonToken.Double) { wrapper.SetDouble((double)reader.Value); return(wrapper); } if (reader.Token == JsonToken.Int) { wrapper.SetInt((int)reader.Value); return(wrapper); } if (reader.Token == JsonToken.Long) { wrapper.SetLong((long)reader.Value); return(wrapper); } if (reader.Token == JsonToken.Boolean) { wrapper.SetBoolean((bool)reader.Value); return(wrapper); } if (reader.Token == JsonToken.ArrayStart) { wrapper.SetJsonType(JsonType.Array); while (true) { IJsonWrapper wrapper2 = ReadValue(factory, reader); if (reader.Token == JsonToken.ArrayEnd) { return(wrapper); } wrapper.Add(wrapper2); } } if (reader.Token == JsonToken.ObjectStart) { wrapper.SetJsonType(JsonType.Object); while (true) { reader.Read(); if (reader.Token == JsonToken.ObjectEnd) { return(wrapper); } string str = (string)reader.Value; wrapper[str] = ReadValue(factory, reader); } } return(wrapper); }
private static IJsonWrapper a(WrapperFactory A_0, JsonReader A_1) { A_1.Read(); if (A_1.Token == JsonToken.ArrayEnd || A_1.Token == JsonToken.Null) { return(null); } IJsonWrapper jsonWrapper = A_0(); if (A_1.Token == JsonToken.String) { jsonWrapper.SetString((string)A_1.Value); return(jsonWrapper); } if (A_1.Token == JsonToken.Double) { jsonWrapper.SetDouble((double)A_1.Value); return(jsonWrapper); } if (A_1.Token == JsonToken.Int) { jsonWrapper.SetInt((int)A_1.Value); return(jsonWrapper); } if (A_1.Token == JsonToken.Long) { jsonWrapper.SetLong((long)A_1.Value); return(jsonWrapper); } if (A_1.Token == JsonToken.Boolean) { jsonWrapper.SetBoolean((bool)A_1.Value); return(jsonWrapper); } if (A_1.Token == JsonToken.ArrayStart) { jsonWrapper.SetJsonType(JsonType.Array); while (true) { IJsonWrapper jsonWrapper2 = JsonMapper.a(A_0, A_1); if (jsonWrapper2 == null && A_1.Token == JsonToken.ArrayEnd) { break; } jsonWrapper.Add(jsonWrapper2); } } else if (A_1.Token == JsonToken.ObjectStart) { jsonWrapper.SetJsonType(JsonType.Object); while (true) { A_1.Read(); if (A_1.Token == JsonToken.ObjectEnd) { break; } string key = (string)A_1.Value; jsonWrapper[key] = JsonMapper.a(A_0, A_1); } } return(jsonWrapper); }
private static IJsonWrapper ReadValue(WrapperFactory factory, JsonReader reader) { reader.Read(); if (reader.Token == JsonToken.ArrayEnd || reader.Token == JsonToken.Null) { return((IJsonWrapper)null); } IJsonWrapper jsonWrapper1 = factory(); if (reader.Token == JsonToken.String) { jsonWrapper1.SetString((string)reader.Value); return(jsonWrapper1); } if (reader.Token == JsonToken.Double) { jsonWrapper1.SetDouble((double)reader.Value); return(jsonWrapper1); } if (reader.Token == JsonToken.Int) { jsonWrapper1.SetInt((int)reader.Value); return(jsonWrapper1); } if (reader.Token == JsonToken.Long) { jsonWrapper1.SetLong((long)reader.Value); return(jsonWrapper1); } if (reader.Token == JsonToken.Boolean) { jsonWrapper1.SetBoolean((bool)reader.Value); return(jsonWrapper1); } if (reader.Token == JsonToken.ArrayStart) { jsonWrapper1.SetJsonType(JsonType.Array); while (true) { IJsonWrapper jsonWrapper2 = JsonMapper.ReadValue(factory, reader); if (jsonWrapper2 != null || reader.Token != JsonToken.ArrayEnd) { jsonWrapper1.Add((object)jsonWrapper2); } else { break; } } } else if (reader.Token == JsonToken.ObjectStart) { jsonWrapper1.SetJsonType(JsonType.Object); while (true) { reader.Read(); if (reader.Token != JsonToken.ObjectEnd) { string str = (string)reader.Value; jsonWrapper1[(object)str] = (object)JsonMapper.ReadValue(factory, reader); } else { break; } } } return(jsonWrapper1); }