Чтение чисел с помощью System.Text.Utf8JsonReader - PullRequest
1 голос
/ 02 мая 2020

Так как Json имеет только один тип для числа, но C# имеет много типов, таких как int, long, double, decimal и т. Д. c. Когда я использую Utf8JsonReader, каков правильный способ получения числа когда после того, как я вызову Read () и TokenType будет JsonTokenType.Number?

Есть такие API, как GetInt32, GetInt64, GetDouble, GetDecimal и др. c. и их эквиваленты TryGet ..., но нет четкого указания на то, какой тип C# использовать для данного числового значения, пока один из них не будет на самом деле вызван.

Единственный способ, которым я сейчас вижу, - это вызвать API TryGet ... начинаются с самых маленьких, которые меня интересуют, например TryGetInt32 (), TryGetInt64 (), TryGetFloat (), TryGetDouble (), до тех пор, пока один из них не будет успешным. Даже это не ясно, поскольку, например, GetDouble () будет успешным, даже если число цифр слишком велико для двойного, округляя его. Есть ли способ настроить эти API-интерфейсы на успех, только если нет потери точности?

Полагаю, я просто запутался в том, что обычно делается при чтении чисел с помощью Utf8JsonReader.

...