Esempio n. 1
0
        private DataType ParseEdmType()
        {
            JsonToken jsonToken = PopToken();

            if (jsonToken.Type != JsonTokenType.String || jsonToken.GetStringValue() != "$t")
            {
                ThrowFormatException("Expecting type marker but found '{0}'", jsonToken.Type.ToString());
            }
            Expect(JsonTokenType.Colon);
            Expect(JsonTokenType.Number);
            double doubleValue = currentToken.GetDoubleValue();

            if (doubleValue % 1.0 != 0.0 || !edmTypeValues.Contains((int)doubleValue))
            {
                ThrowFormatException("Invalid Edm type: {0}", doubleValue);
            }
            int result = (int)doubleValue;

            Expect(JsonTokenType.Comma);
            Expect("$v");
            Expect(JsonTokenType.Colon);
            currentToken = PopToken();
            currentValue = currentToken;
            Expect(JsonTokenType.EndObject);
            return((DataType)result);
        }
Esempio n. 2
0
 public double?ReadDouble()
 {
     ThrowIfDisposed();
     ThrowIfInvalidState("ReadDouble", TableEntityReaderState.HasValue);
     ThrowIfInvalidType("ReadDouble", DataType.Double);
     if (currentValue.Type == JsonTokenType.Null)
     {
         return(null);
     }
     if (currentValue.Type == JsonTokenType.String)
     {
         return(double.Parse(currentValue.GetStringValue(), CultureInfo.InvariantCulture));
     }
     EnsureMatchingTypes(currentValue.Type, JsonTokenType.Number);
     return(currentValue.GetDoubleValue());
 }