public void Deserialize() { string json = "America/Los_Angeles"; var dateTimeZone = serializer.Deserialize(json); var expectedDateTimeZone = DateTimeZoneProviders.Tzdb["America/Los_Angeles"]; Assert.Equal(expectedDateTimeZone, dateTimeZone); }
private static void ConfigureNullableSerializer <T>(this IServiceStackSerializer <T> serializer) where T : struct { //ServiceStack.Text will never use the serialize / deserialize fn if the value is null //or the text is null or empty. if (serializer.UseRawSerializer) { JsConfig <T?> .RawSerializeFn = arg => serializer.Serialize(arg.Value); JsConfigWrapper <T?> .SetRawDeserializerMember(s => serializer.Deserialize(s)); } else { JsConfig <T?> .SerializeFn = arg => serializer.Serialize(arg.Value); JsConfigWrapper <T?> .SetDeserializerMember(s => serializer.Deserialize(s)); } }
/// <summary> /// Deserializes the given JSON. /// </summary> /// <param name="text">The JSON to parse.</param> /// <returns>The deserialized <see cref="Interval"/>.</returns> public Interval Deserialize(string text) { var complexIntervalDto = JsonSerializer.DeserializeFromString <ComplexRawIntervalDto>(text); if (!IsValid(complexIntervalDto)) { throw new InvalidNodaDataException("An Interval must contain Start and End properties."); } var start = _instantSerializer.Deserialize(complexIntervalDto.Start); var end = _instantSerializer.Deserialize(complexIntervalDto.End); var interval = new Interval(start, end); return(interval); }
private static void AssertConversions <T>(T value, string expectedJson, IServiceStackSerializer <T> serializer) { var actualJson = serializer.Serialize(value); Assert.Equal(expectedJson, actualJson); var deserializedValue = serializer.Deserialize(expectedJson); Assert.Equal(value, deserializedValue); }
/// <summary> /// Deserializes the given JSON. /// </summary> /// <param name="text">The JSON to parse.</param> /// <returns>The deserialized <see cref="Interval"/>.</returns> public Interval Deserialize(string text) { if (string.IsNullOrEmpty(text)) { throw new InvalidNodaDataException("No text to parse."); } var slash = text.IndexOf(Iso8601TimeIntervalSeparator); if (slash == -1) { throw new InvalidNodaDataException("Expected ISO-8601-formatted interval; slash was missing."); } var startText = text.Substring(0, slash); var endText = text.Substring(slash + 1); var start = _instantSerializer.Deserialize(startText); var end = _instantSerializer.Deserialize(endText); return(new Interval(start, end)); }
public static void ConfigureSerializer(IServiceStackSerializer <LocalDate> serializer) { JsConfig <LocalDate> .SerializeFn = args => { var serialized = serializer.Serialize(args); return(serialized); }; JsConfig <LocalDate> .DeSerializeFn = args => { var deserialized = serializer.Deserialize(args); return(deserialized); }; JsConfig <LocalDate?> .SerializeFn = arg => { var serializedValue = serializer.Serialize(arg.Value); return(serializedValue); }; JsConfig <LocalDate?> .DeSerializeFn = s => { var deserializedValue = serializer.Deserialize(s); return(deserializedValue); }; }