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

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


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

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

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


Попробуй подумать над тем, как сделать преобразователь JSON-XML-JSON или XML-JSON-XML. Чтобы двойное преобразование возвращало идентичный документ/объект для произвольного входа. И при этом промежуточный JSON или XML не вызывал желания выпрыгнуть в окно. Я такого способа не придумал. И это как раз из-за принципиального несовпадения между моделями данных у 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 передают.
Отредактировано 19.12.2024 12:17 vsb . Предыдущая версия . Еще …
Отредактировано 19.12.2024 12:16 vsb . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.