Size: a a a

2020 October 14

b⛅

bouncepaw ⛅ in pro.vim
Nicholas Guriev
парсер хотя бы не должен падать на любых входных данных
имеет полное право
источник

b⛅

bouncepaw ⛅ in pro.vim
это же не html, в котором любой входной текст валиден
источник

NG

Nicholas Guriev in pro.vim
bouncepaw ⛅
имеет полное право
тогда получем DoS, отказ в обслуживании
источник

NG

Nicholas Guriev in pro.vim
это не здороов
источник

VG

Vadim Goncharov in pro.vim
Замыкающие запятые (trailing commas), например [123,] или {"a":1,}, не являются частью грамматики, поэтому такие файлы не должны проходить тесты, верно? Но дело в том, что RFC 7159 позволяет парсерам поддерживать «расширения» (раздел 9), хотя пояснений насчёт них не даётся. На практике замыкающие запятые — распространённое расширение
источник

VG

Vadim Goncharov in pro.vim
bouncepaw ⛅
статья прикольная, конечно, но по сути ничего она не меняет. Жсон в моём понимании от прочтения хуже не стал
в моем стал
источник

VG

Vadim Goncharov in pro.vim
хотя он, конечно, лучше XML
источник

NG

Nicholas Guriev in pro.vim
уж XML то чем не угодил?
источник

JM

John Meow in pro.vim
Nicholas Guriev
уж XML то чем не угодил?
Толсто
источник

NG

Nicholas Guriev in pro.vim
ох... а вообще знаете что, нам надо во флудилку перейти
источник

b⛅

bouncepaw ⛅ in pro.vim
Nicholas Guriev
ох... а вообще знаете что, нам надо во флудилку перейти
согласен
источник

VG

Vadim Goncharov in pro.vim
Диапазон и точность — а что насчёт чисел из огромного количества цифр? Согласно RFC 7159, «JSON-парсер ДОЛЖЕН принимать все виды текстов, соответствующих грамматике JSON» (глава 9). Но в том же параграфе говорится: «Реализация может ограничивать диапазон и точность чисел». Так что мне непонятно, могут ли парсеры выдавать ошибку, сталкиваясь со значениями наподобие 1e9999 или 0.0000000000000000000000000000001.
источник

VG

Vadim Goncharov in pro.vim
вот вполне практический момент, кстати, который так просто не угоадать
источник

SL

Sergey Lapin in pro.vim
@jubnzv Спасибо за наводку! Офигенная штука - https://www.youtube.com/watch?v=zl68asL9jZA
источник

SL

Sergey Lapin in pro.vim
источник

GK

Georgy Komarov in pro.vim
👍
источник

VG

Vadim Goncharov in pro.vim
bouncepaw ⛅
Кодировка файла. «JSON-текст ДОЛЖЕН быть в кодировке UTF-8, UTF-16 или UTF-32. По умолчанию используется UTF-8» (раздел 8.1).
Так что для прохождения тестов необходима одна из трёх кодировок. Тексты в UTF-16 и UTF-32 также должны содержать старшие и младшие варианты.

Сбойные тесты включают в себя строки в кодировке ISO-Latin-1.
Например, ключи могут быть разными в двоичном выражении, но эквивалентными в соответствии с нормализацией Inicode NFC: {"C3A9:"NFC","65CC81":"NFD"}, здесь оба ключа обозначают "é".
источник

SL

Sergey Lapin in pro.vim
Не хватало духу раньше на такие штуки. Но пересев на вим, осилю настроить
источник

NM

Nickolay M. in pro.vim
Vadim Goncharov
Диапазон и точность — а что насчёт чисел из огромного количества цифр? Согласно RFC 7159, «JSON-парсер ДОЛЖЕН принимать все виды текстов, соответствующих грамматике JSON» (глава 9). Но в том же параграфе говорится: «Реализация может ограничивать диапазон и точность чисел». Так что мне непонятно, могут ли парсеры выдавать ошибку, сталкиваясь со значениями наподобие 1e9999 или 0.0000000000000000000000000000001.
упарываться и передавать строкой 🤦‍♂️ костылинг, блин
источник

VG

Vadim Goncharov in pro.vim
во-во, начинается
источник