Re[4]: JSON vs BSON: очередное торжество больного воображени
От: vdimas Россия  
Дата: 02.12.22 23:36
Оценка: -1
Здравствуйте, swame, Вы писали:

S>С виду для чтения человеком примерно то же самое, только в этом варианте парсинг строки внутри делается парсером,

S>за счет чего DOM при чтении/записи памяти займет в несколько раз больше,
S>и мой вариант все же компактней за счет отсутствия кавычек (но они могут быть, если есть неоднозначность).

DOM от поданной строки или массива байт в памяти — это просто разметка, т.е. набор смещений, без реального разбиения/копирования размеченных отрезков.
Если твой парсер делает копии подстрок, то System.Text.Json эффективнее в разы.

Если твой парсер тоже обходится подстроками, — то будет примерно так же, с точностью до вылизывания (системная реализация нехило вылизана).
Просто ты часть работы переносишь из Json парсера в свой, непонятно откуда надеясь, что твой парсер будет эффективнее. ))


S>Мне не требуется писать свой парсер, у меня только Функция парсинга строки своя, экономичная и хорошо оттестированная.

S>Если данные не простые-повторяющиеся, как в примере, а сложно-вложенные,
S>ничего не мешает использовать обычный JSON, в других узлах того же файла.

JSON сам по себе малость убог и избыточен, увы.
Сравни похожий на него QML:
Item {
     Rectangle {
         id: myRect
         width: 120
         height: 100
     }
     Rectangle {
         width: myRect.width
         height: 200
     }
}

Никаких лишних знаков препинания.
Плюс можно ссылаться на элементы описания:

Each object can be given a special unique property called an id. Assigning an id enables the object to be referred to by other objects and scripts.


В общем, JSON хорош там, где он служит чем-то вроде сокета для обмена с третьесторонним окружением.
А так-то хрень полная.
И вся его избыточность как раз для того, чтобы покрыть как можно больше сценариев, оставив как можно меньше простора для ошибок в каждом из них.
В общем по-классике — самое общее решение является самым худшим для конкретного случая.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.