On Sunday, 26 July 2020 19:42:58 MSK Slawa Olhovchenkov wrote: > On Sun, Jul 26, 2020 at 07:29:04PM +0300, Валентин Бартенев wrote: > > > On Sunday, 26 July 2020 19:15:20 MSK Slawa Olhovchenkov wrote: > > > On Sun, Jul 26, 2020 at 05:55:57PM +0300, Sergey Kandaurov wrote: > > > > > > > > > > > > On 24 Jul 2020, at 14:13, Slawa Olhovchenkov <s...@zxy.spb.ru> wrote: > > > > > > > > > > Внезапно выяснилось что если пишем в json формате (ну ок, > > > > > экранирование json), то отсутсвующе числовые значения все ломают. > > > > > они идут как "-". может в этом случае их выводить как null? > > > > > > > > Такая подстановка используется в эскейпинге по умолчанию, > > > > если значение переменной не найдено. В других форматах > > > > эскейпинга значение не выводится, подробнее здесь: > > > > http://nginx.org/r/log_format/ru > > > > > > ну по спецификации json отстувиие должно кодироваться как null, не? > > > > Это где такое написано? > > https://stackoverflow.com/questions/21120999/representing-null-in-json >
Это не спецификация, а предпочтения пользователей StackOverflow. > в предположении что значение числовое. > > в любом случае варианта выводить ничего нет -- для чисел будет не > валидный json, а все числа пихать в виде строк в "" -- как-то тоже > кажется неправильным. Дело в том, что в nginx все переменные строковые. Они в первую очередь предназначены для использования в конфигурации, а там нет отличий никаких между числом и строкой. Конфигурация - это не ЯП с типизацией, а набор токенов из текстового файла, которые затем интерпретируются в зависимости от директивы, в которой используются. Поэтому решение о том, как использовать каждую переменную в JSON: в виде строки, заворачивая в кавычки, или в виде числа, не заворачивая - отдано на откуп пользователю. Если пользователь решает использовать переменную не в виде строки, то он должен позаботиться о том, чтобы она всегда содержала в этом случае корректное значение с точки зрения выбранного им варианта применения. -- Валентин Бартенев _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru