Чтение номера Json в виде строкиC#

Место общения программистов C#
Ответить
Anonymous
 Чтение номера Json в виде строки

Сообщение Anonymous »

Что мне нужно:
  • Десериализовать строку Json в объект
  • Сделать кое-что
  • вернуть его как строку в конце
В чем проблема?
Когда у Json есть такое свойство, как {"foobar " : 0.0000000000000000001}, оно преобразуется в число, но затем в виде строки оно представляется в научной записи как 1E-19
Есть ли способ прочитать число из json в виде строки или преобразовать такое число позже в ту же самую строку без потери точности? Точность не фиксирована, и число в json может встречаться в любом свойстве.
Использование Newtonsoft предпочтительнее (если это возможно), чем System.Text.Json.
Я пытался
  • создайте CustomJsonConverter от Newtonsoft
  • используйте System.Text.Json.JsonNumberHandling.WriteAsString
  • преобразование числа с плавающей запятой в строку
    но ни одно из этих решений не сработало
  • Я не смог найти способ обрабатывать любое числовое значение как строку, не знаю, если это так даже возможно в таком конвертере
  • Я думаю, что этот конвертер работает только в одном направлении, от объекта к строке, и это не то, что я ищу
  • такое преобразование не сработало, потому что оно потеряло точность или сделало "чрезмерную точность" (0,00...01 было записано как 0,00...0989919999 или что-то в этом роде), или добавило дополнительные нули в конце - зависит от того, что форматирование, которое я использовал
В идеале я хотел бы преобразовать строку типа {"foobar": 21.37} в объект со свойством foobar = "21.37" в убедитесь, что точность не будет потеряна после перехода между числом и строкой

Подробнее здесь: https://stackoverflow.com/questions/784 ... s-a-string
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»