Информация об изменениях

Сообщение Re[3]: Самый удобный человеко-читаемый язык данных от 19.12.2024 12:13

Изменено 19.12.2024 12:16 vsb

Re[3]: Самый удобный человеко-читаемый язык данных
Здравствуйте, Pzz, Вы писали:

Pzz>Не понимаю. В XML можно изобразить массив, просто повторяя элемент (с одинаковым именем) несколько раз. Некоторые протоколы так и делают.


Без дополнительной информации вроде XML Schema — нельзя. Т.к. нельзя отличить null от массива нулевой длины и нельзя отличить массив единичной длины от объекта.

Только вводить тег <array>. Ну так, конечно, можно что угодно во что угодно преобразовать. Но выглядеть это будет страшновато...

Pzz>Я не вижу глубокой логической разницы межд XML и JSON. Просто XML сделан "всерьез и навека", от этого в нём столько лишних сложностей, что сдохнуть можно. JSON в этом плане значительно удобнее/проще.


Попробуй подумать над тем, как сделать преобразователь JSON в XML и назад. Чтобы двойное преобразование возвращало идентичный документ/объект для произвольного входа. И при этом получившийся JSON или XML не вызывал желания выпрыгнуть в окно. Я такого способа не придумал. И это как раз из-за принципиального mismatch между моделями данных у XML и JSON.

Pzz>Сам спросил, сам ответил. 2^52 же. Числа в JSON — это 64-битный float в формате IEEE 754, и это от JS так пошло.


Нет, числа в JSON вообще никак не специфицированы. В каждой реализации они по-своему работают. В Java без проблем я могу сделать 54-битное число в JSON, сформировать и прочитать. И это число в JS будет читаться неправильно.

https://www.json.org/json-en.html вот "спецификация". Про number написан только синтаксис, никаких ограничений.

vsb>>Не специфицирована кодировка текста, т.е. нет однозначного отображения объекта в байты, только в строку.


Pzz>UTF-8 же.


Нет, не специфицировано, ну или я не видел.

Pzz>Раздражает, что нет синтаксиса для передачи бинарных данных (массива байт).


Обычно в base64 передают.
Re[3]: Самый удобный человеко-читаемый язык данных
Здравствуйте, Pzz, Вы писали:

Pzz>Не понимаю. В XML можно изобразить массив, просто повторяя элемент (с одинаковым именем) несколько раз. Некоторые протоколы так и делают.


Без дополнительной информации вроде XML Schema — нельзя. Т.к. нельзя отличить null от массива нулевой длины и нельзя отличить массив единичной длины от объекта.

Только вводить тег <array>. Ну так, конечно, можно что угодно во что угодно преобразовать. Но выглядеть это будет страшновато...

Pzz>Я не вижу глубокой логической разницы межд XML и JSON. Просто XML сделан "всерьез и навека", от этого в нём столько лишних сложностей, что сдохнуть можно. JSON в этом плане значительно удобнее/проще.


Попробуй подумать над тем, как сделать преобразователь JSON-XML-JSON или XML-JSON-XML. Чтобы двойное преобразование возвращало идентичный документ/объект для произвольного входа. И при этом промежуточный JSON или XML не вызывал желания выпрыгнуть в окно. Я такого способа не придумал. И это как раз из-за принципиального mismatch между моделями данных у XML и JSON.

Pzz>Сам спросил, сам ответил. 2^52 же. Числа в JSON — это 64-битный float в формате IEEE 754, и это от JS так пошло.


Нет, числа в JSON вообще никак не специфицированы. В каждой реализации они по-своему работают. В Java без проблем я могу сделать 54-битное число в JSON, сформировать и прочитать. И это число в JS будет читаться неправильно.

https://www.json.org/json-en.html вот "спецификация". Про number написан только синтаксис, никаких ограничений.

vsb>>Не специфицирована кодировка текста, т.е. нет однозначного отображения объекта в байты, только в строку.


Pzz>UTF-8 же.


Нет, не специфицировано, ну или я не видел.

Pzz>Раздражает, что нет синтаксиса для передачи бинарных данных (массива байт).


Обычно в base64 передают.