TIL что в JavaScript на раз-два создаются структуры данных, которые невозможно сохранить в JSON (напомню, JavaScript Object Notation). That's so javascriptish, вот весь насквозь он такой.
Любая не-древесная структура (даже без циклов, просто DAG) не представима в JSON без специальных средств. JSON— не универсальный сериализатор (каким, например, пытается быть сераилизация в Java или Python), а штука для простого написания протоколов.
@whatever ключевое слово "данных", о функциях, ссылках и т.д. разговор не идёт. Меня удивлаяет, что из базовых вещей — примитивов, массивов и словарей — можно собрать непригодную к сериализации структуру.
@seliv: Не "не справляется", а "не предназначен". У thrift или protobuf разве справляется? А название такое не потому, что оно про сериализацию _любого_ JS-объекта (оно в принципе не разрешимо), а потому, что использует JS-ный синтаксис для строк, списков и словарей.
@whatever^ жизнь порой прекрасна и удивительна, формальная иерархия на том проекте такова, что написавший это чувак мои пулл-реквесты ревьюить и мёржить может, а я его — нет.
^ Зачем? Мне на этом проекте платят отличную фиксированную ставку за торговлю еблом в GTM-е и нагрузку в 5-15 часов, и мне с этим продуктом декаду на поддержке не жить, опционов у меня нет. Я бы наоборот ещё парочку таких взял.
Очень странный пост, JSON изначально для interoperability only, поэтому там ни функций, ни ссылок, ни дат, и?
· aggressive understanding 1Любая не-древесная структура (даже без циклов, просто DAG) не представима в JSON без специальных средств. JSON— не универсальный сериализатор (каким, например, пытается быть сераилизация в Java или Python), а штука для простого написания протоколов.
· 9000 1@whatever ключевое слово "данных", о функциях, ссылках и т.д. разговор не идёт. Меня удивлаяет, что из базовых вещей — примитивов, массивов и словарей — можно собрать непригодную к сериализации структуру.
· интернет щей@9000 речь не о высокоуровневой интеллектуальной невозвожности, а тупо сериализатор не справляется.
· интернет щей@seliv: Не "не справляется", а "не предназначен". У thrift или protobuf разве справляется? А название такое не потому, что оно про сериализацию _любого_ JS-объекта (оно в принципе не разрешимо), а потому, что использует JS-ный синтаксис для строк, списков и словарей.
· 9000http://timelessrepo.com/json-isnt-a-javascript-subset
· birdwatcher 2Если без ссылок (as in: references), то мне любопытно, покажете?
· aggressive understandingА как в JS без references, на них же в нём *всё* построено? Или чего я не понял?
· 9000@whatever всё просто: var obj = ['a']; obj['b'] = 'c'; и далее сравнить console.log и JSON.stringify.
· интернет щейЗа такое на кодревью очень осуждающе смотреть надо — путать объекты и массивы это плохая идея.
· aggressive understanding 2@whatever ^ жизнь порой прекрасна и удивительна, формальная иерархия на том проекте такова, что написавший это чувак мои пулл-реквесты ревьюить и мёржить может, а я его — нет.
· интернет щей^ Run! (c)
· 9000^ Зачем? Мне на этом проекте платят отличную фиксированную ставку за торговлю еблом в GTM-е и нагрузку в 5-15 часов, и мне с этим продуктом декаду на поддержке не жить, опционов у меня нет. Я бы наоборот ещё парочку таких взял.
· интернет щей@seliv: https://mokum.place/squadette/892899
· псы в рапиде@seliv: ^^ Ну и отлично тогда! Крепкие нервы — залог финансового успеха.
· 9000@squadette: и декабрь!
· Vlad Kaznacheev