Разобраться с длинными числами в научной нотации в строке json - Freemarker - PullRequest
0 голосов
/ 04 июля 2019

У меня есть строка json, которая содержит длинное число, но в научной записи (например, 1.559101974041E12 вместо 1559101974041).Из-за этого я не могу разобрать его, используя? Eval, так как это значение должно быть в двойных кавычках, чтобы его можно было проанализировать.

Я подумал об одном решении, как обводить их двойными кавычками с помощью регулярных выражений и оценивать их.После этого используйте какой-нибудь метод свободного маркера для преобразования значения в longНо это решение очень рискованно и может изменить и другие значения.

1 Ответ

0 голосов
/ 04 июля 2019

Я не уверен, как выглядит ваш шаблон, но если у вас есть переменная s, которая содержит строку "1.559101974041E12" (кавычки не являются частью самого строкового значения), то вы можете проанализировать его как s?number. s?eval не работает, потому что научная нотация не является частью синтаксиса FreeMarker (но ?number может анализировать больше форматов).

Если вы перепечатаете число в шаблоне, обратите внимание, что в зависимости от локали и настроек конфигурации оно может выглядеть как 1,559,101,974,041. Вы можете предотвратить это с помощью ?c (например, как ${s?number?c}), в этом случае оно всегда будет выглядеть как 1559101974041.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...