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

Сообщение Re[3]: JSON vs BSON: очередное торжество больного воображени от 02.12.2022 11:17

Изменено 02.12.2022 11:33 swame

Re[3]: JSON vs BSON: очередное торжество больного воображени
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, swame, Вы писали:


S>>Я в итоге в поисках компромисса между читаемостью, расширяемостью, скоростью, размерам

S>>пришел к псевдо-JSON Формату, где записи пакуются в строку, а названия полей описываются 1 раз.

V>Можно было обыграть нестрогим JSON (это который в синтаксисе Java Script, где названия полей всегда латинница, числа без кавычек).

V>Тогда твой пример будет таким:
V>
V>{
V>    Table: {
V>        Name: "Analogs",
V>        colCount: 7,
V>        rowCount: 10001
V>    },
V>    Columns: ["ID","Name","Path","Tag","Min","Max","Value"],
V>    CanWrite: [1,1,1,1,1,1,1],
V>    Rows: [
V>        [0,"analog_0",0,0,10,90,18],
V>        ...
V>        [10000,"analog_10000",100,10000,10,90,10]
V>    ]
V>}
V>


С виду для чтения человеком примерно то же самое, только в этом варианте парсинг строки внутри делается парсером,
за счет чего DOM при чтении/записи памяти займет в несколько раз больше,
и мой вариант все же компактней за счет отсутствия кавычек (но они могут быть, если есть неоднозначность).
Re[3]: JSON vs BSON: очередное торжество больного воображени
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, swame, Вы писали:


S>>Я в итоге в поисках компромисса между читаемостью, расширяемостью, скоростью, размерам

S>>пришел к псевдо-JSON Формату, где записи пакуются в строку, а названия полей описываются 1 раз.

V>Можно было обыграть нестрогим JSON (это который в синтаксисе Java Script, где названия полей всегда латинница, числа без кавычек).

V>Тогда твой пример будет таким:
V>
V>{
V>    Table: {
V>        Name: "Analogs",
V>        colCount: 7,
V>        rowCount: 10001
V>    },
V>    Columns: ["ID","Name","Path","Tag","Min","Max","Value"],
V>    CanWrite: [1,1,1,1,1,1,1],
V>    Rows: [
V>        [0,"analog_0",0,0,10,90,18],
V>        ...
V>        [10000,"analog_10000",100,10000,10,90,10]
V>    ]
V>}
V>


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

V>Хотя, если уж самим писать парсер, то я бы убрал синтаксическую избыточность:

V>
V>part1: { A: 1 B: 0 }
V>part2: { C: "X" D: ["Y" "Z"] }
V>config: { L: part1 M: part2 }
V>


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