Previous Entry Share Next Entry
2016-01

JSON crap

Сегодня я узнал, что в JSON нельзя сериализовать NaN и Infinity :/

Ну а о том, что не всякий валидный JSON является валидным JS (т.е. поддается eval'у), вы и сами знаете.

This entry was originally posted at http://wizzard.dreamwidth.org/380227.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
shabunc July 10th, 2014
У меня нет-нет, да и вызывает досаду тот факт, что комменты нельзя писать в JSON-е. Потому что иногда нужно, чтобы мне ни говорили.

wizzard0 July 10th, 2014
И это тоже, да.

_winnie July 10th, 2014
Для бесконечности можно писать 1e350

wizzard0 July 10th, 2014
NaN нужнее

enternet July 10th, 2014
Неустаканенность формата дат в джейсоне тоже весьма раздражает.

wizzard0 July 10th, 2014
Ну это да, но там хотя бы можно налепить конвертор в UTC milliseconds since epoch, а с NaN/Infinity хз что делать

vaddimka July 10th, 2014
в CBOR'е можно :)

wizzard0 July 10th, 2014
О, еще один велосипед!

Надо позырить)

max630 July 10th, 2014
http://vimeo.com/77199361 , смотреть с 17:49

а главное - ну из-за чего хорошего бы, а что такое этот NaN вообще? Я вот не помню ютобы он хоть когда-то был нужен мне.

wizzard0 July 10th, 2014
> смотреть с 17:49
> "Oh dear!
This video can’t be played with your current setup."

Можно TLDR? А то лень сейчас разбираться, что там у флэша снова отвалилось :(

> Я вот не помню ютобы он хоть когда-то был нужен мне.
Не, если пошла такая пьянка, то я и вообще на fixed point могу перейти, или в строку его закодировать. "Но зачем"? Есть же IEEE754, никому не мешает.... -_-

Вот например есть time series data, в которой есть дыры - пакет от устройства не пришел, датчик заглючил, whatever.

Оно в оригинале strongly-typed как double[], нули и бесконечности там валидные значения (NaN ничего не пришло, Infinity "расстояние больше чем мы можем померять")

Ну и прочее подобное, кейсов масса, не зря же их в стандарт запихали

wizzard0 July 10th, 2014
> ну из-за чего хорошего бы

Я вот еще скажу контринтуитивную штуку. JSON - это даже не subset JS, можно сгенерить валидный жсон который с радостью будут жрать парсеры (включая Крокфордовский JSON2.js и браузерный JSON.parse), а eval()'ить его будет нельзя!

Edited at 2014-07-10 05:54 pm (UTC)

nponeccop July 10th, 2014
A в YAML есть ссылки.

Я потихоньку начинаю ненавидеть текстовые форматы.

Ещё если много чисел сериализовать, боттлнеком становится itoa/atoi.

wizzard0 July 10th, 2014
Я уже почти созрел чтобы полюбить бомбу, в смысле, ASN.1.

Но там нет ссылок. Не то чтобы они были часто нужны, впрочем...

vit_r July 10th, 2014
Так есть же коммитеты по стандартизации. Туда писать надо. Или самому автору.

max630 July 16th, 2014

  • 1
?

Log in

No account? Create an account