Сообщение 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>
С виду для чтения человеком примерно то же самое, только в этом варианте парсинг строки внутри делается парсером,
за счет чего DOM при чтении/записи памяти займет в несколько раз больше,
и мой вариант все же компактней за счет отсутствия кавычек (но они могут быть, если есть неоднозначность).
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>
С виду для чтения человеком примерно то же самое, только в этом варианте парсинг строки внутри делается парсером,
за счет чего DOM при чтении/записи памяти займет в несколько раз больше,
и мой вариант все же компактней за счет отсутствия кавычек (но они могут быть, если есть неоднозначность).
V>Хотя, если уж самим писать парсер, то я бы убрал синтаксическую избыточность:
V>
Мне не требуется писать свой парсер, у меня только Функция парсинга строки своя, экономичная и хорошо оттестированная.
Если данные не простые-повторяющиеся, как в примере, а сложно-вложенные,
ничего не мешает использовать обычный JSON, в других узлах того же файла.
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, в других узлах того же файла.