powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Просто Трёп [закрыт для гостей] / Написал парсер JSON приличный за пару вечеров.
25 сообщений из 96, страница 1 из 4
Написал парсер JSON приличный за пару вечеров.
    #627983
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
Раньше думал, что это ебать как сложно.
На деле задача свелась к двум этапам
1. Превратить JSON в поток событий "встретил начало строки", "встретил двоеточие", "встретил начало списка" (скобка квадратная) и т.п.
2. Ловилка этих событий, формирующая распарсенный объект.

Парсилка получилась слегка тупая, например экранирование в строках она не поймёт, ну и хуй с ним.
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #627996
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
W  24.11.2023, 18:52
[игнорируется]
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 18:51
[игнорируется]
Парсилка получилась слегка тупая, например экранирование в строках она не поймёт, ну и хуй с ним.
для конфигов чтоле?
Ну типа.
И это уже дохуя не мало.
Конфиг радиогугла:
Код: JSON
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
{
  "bands" : [
    {
      "name" : "testnamedududu",
      "freq" : 433075000,
      "gain" : 320,
      "fft" : 1024,
      "bin-start" : 720,
      "bin-width" : 64,
      "sq-level" : 12,
      "sq-time" : 200,
      "filter-hz" : [150, 5500],

      "record" : {
        "path" : "/mnt/ramdisk/data",
        "prefix" : "dududu-",
        "file-time-ms-limit" : [1500, 60000],
        "limit-size-kb" : 1900,
        "tail-ms" : 100,
        "timeout-ms" : 6000,
        "opus-bitrate" : 23000
      },

      "record-iq" : {
        "enable" : 0,
        "pre" : 48000,
        "post" : 48000,
        "path" : "/mnt/ramdisk/iqdata",
        "prefix" : "debug-iq-",
        "timeout-ms" : 6000
      }
    }
  ]
}
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628005
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
W  24.11.2023, 18:56
[игнорируется]
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 18:54
[игнорируется]
W  24.11.2023, 18:52
[игнорируется]
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 18:51
[игнорируется]
Парсилка получилась слегка тупая, например экранирование в строках она не поймёт, ну и хуй с ним.
для конфигов чтоле?
Ну типа.
И это уже дохуя не мало.
Конфиг радиогугла:
Код: JSON
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
{
  "bands" : [
    {
      "name" : "testnamedududu",
      "freq" : 433075000,
      "gain" : 320,
      "fft" : 1024,
      "bin-start" : 720,
      "bin-width" : 64,
      "sq-level" : 12,
      "sq-time" : 200,
      "filter-hz" : [150, 5500],

      "record" : {
        "path" : "/mnt/ramdisk/data",
        "prefix" : "dududu-",
        "file-time-ms-limit" : [1500, 60000],
        "limit-size-kb" : 1900,
        "tail-ms" : 100,
        "timeout-ms" : 6000,
        "opus-bitrate" : 23000
      },

      "record-iq" : {
        "enable" : 0,
        "pre" : 48000,
        "post" : 48000,
        "path" : "/mnt/ramdisk/iqdata",
        "prefix" : "debug-iq-",
        "timeout-ms" : 6000
      }
    }
  ]
}
словари есть?
Ну как видишь, вышеприведённое успешно парситца.
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628029
IT-Клоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По стопам Валентина...
С уважением.
...
Рейтинг: 2 / 0
Нравится: Дед-Папыхтет, Кусь
Написал парсер JSON приличный за пару вечеров.
    #628032
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пашэ просирает жизнь на никому не нужный радиогугл
еслиб еще ии прикрутил туду сюда
хоть бы скилы прокачал
а так чушь полная
...
Рейтинг: 1 / 0
Нравится: ZаЛупина
Написал парсер JSON приличный за пару вечеров.
    #628040
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
Артефакт  24.11.2023, 19:20
[игнорируется]
пашэ просирает жизнь на никому не нужный радиогугл
еслиб еще ии прикрутил туду сюда
хоть бы скилы прокачал
а так чушь полная
Так я прокачал дохуя пока из сырого IQ звук в OPUS закодированный хуярил.
Ты штож думал, я запустил готовую либу какую-то бугага.
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628074
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либу использовать для скилов полезнее
изобретать велосипед это тупик
...
Рейтинг: 1 / 0
Нравится: ZаЛупина
Написал парсер JSON приличный за пару вечеров.
    #628080
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
Артефакт  24.11.2023, 19:36
[игнорируется]
либу использовать для скилов полезнее
изобретать велосипед это тупик
Да нихуя. Скиллов в чём, в умении юзать либу?
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628083
Артефакт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже на собеседе спросят что использовал
скажешь самопал и все охуеют чтоле
кучу времени убил, а результат пшик - только форум засрал
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628092
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 18:51
[игнорируется]
Раньше думал, что это ебать как сложно.
На деле задача свелась к двум этапам
1. Превратить JSON в поток событий "встретил начало строки", "встретил двоеточие", "встретил начало списка" (скобка квадратная) и т.п.
2. Ловилка этих событий, формирующая распарсенный объект.

Парсилка получилась слегка тупая, например экранирование в строках она не поймёт, ну и хуй с ним.
Нормальное дело по-моему. А что с некорректным JSON-ом? Просто прекращает парсинг?

На каком языке писал? Си++ или что-то скриптовое?
...
Изменено: 24.11.2023, 19:48 - s62
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628097
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 18:51
[игнорируется]
Раньше думал, что это ебать как сложно.
На деле задача свелась к двум этапам
1. Превратить JSON в поток событий "встретил начало строки", "встретил двоеточие", "встретил начало списка" (скобка квадратная) и т.п.
2. Ловилка этих событий, формирующая распарсенный объект.

Парсилка получилась слегка тупая, например экранирование в строках она не поймёт, ну и хуй с ним.
Валентатор писал конвертатор Джейсон в иксэмэл )))

В общем ты растешь, скоро будешь как Валя )
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628112
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
Артефакт  24.11.2023, 19:43
[игнорируется]
даже на собеседе спросят что использовал
скажешь самопал и все охуеют чтоле
кучу времени убил, а результат пшик - только форум засрал
Не, мир не так устроен нихуя.
Я работаю в области реальной инженерии, когда создают что-то новое, а не в банках и прочих базоёпно-клепательных хуйнях.
У нас как раз ценится, в нашем мирке, что человек может разобраться до наносекунд и байтиков как там пакет в сетевухе живёт.
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628113
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
s62  24.11.2023, 19:47
[игнорируется]
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 18:51
[игнорируется]
Раньше думал, что это ебать как сложно.
На деле задача свелась к двум этапам
1. Превратить JSON в поток событий "встретил начало строки", "встретил двоеточие", "встретил начало списка" (скобка квадратная) и т.п.
2. Ловилка этих событий, формирующая распарсенный объект.

Парсилка получилась слегка тупая, например экранирование в строках она не поймёт, ну и хуй с ним.
Нормальное дело по-моему. А что с некорректным JSON-ом? Просто прекращает парсинг?

На каком языке писал? Си++ или что-то скриптовое?
C++ чистейший, причём кода не так много, строк наверное 200 в сумме или 300, хз.
Некорректный JSON наверное вызовет сегфолт и отвал жопы!
Главное не пробовать.
Я думаю моя парсилка не пройдёт никуя нормальный набор тестов на сертифицированный парсер.
Но мне только конфиги мои парсить.
...
Рейтинг: 1 / 0
Нравится: s62
Написал парсер JSON приличный за пару вечеров.
    #628122
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 18:51
[игнорируется]
Парсилка получилась слегка тупая, например экранирование в строках она не поймёт, ну и хуй с ним.
Ну, чуть что сложнее, сразу хуй забиваешь. Типа уже влом. Парсилка json без таких вещей это как автомобиль без двух колес.
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628123
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
JSON, сцуко, это всё-таки самых охуенный формат описания структур данных текстом.
Потому что имеет тот минимальный набор фич, который часто нужен и ничего лишнего.
YAML меня дико бесит из-за сраных отступов.
JSON идеален - есть всё что надо:
- словари
- списки со строгим порядком
- строки
- числа

Всё, хуле ещё надо.
Главное, что вложенность может быть любой глубины и в значение ключа можно спрятать любой объект, что очень часто надо и является достаточно естественной потребностью.
...
Рейтинг: 1 / 0
Нравится: IT-Клоп
Написал парсер JSON приличный за пару вечеров.
    #628125
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
Павел Мамкарёв  24.11.2023, 20:12
[игнорируется]
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 18:51
[игнорируется]
Парсилка получилась слегка тупая, например экранирование в строках она не поймёт, ну и хуй с ним.
Ну, чуть что сложнее, сразу хуй забиваешь. Типа уже влом. Парсилка json без таких вещей это как автомобиль без двух колес.
Задачу решает, имеет какой-никакой законченный компилируемый вид и интерфейс, на практике работает - заебись. На конкурс лучших парсилок и не собирался.
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628126
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Мамкарёв  24.11.2023, 20:12
[игнорируется]
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 18:51
[игнорируется]
Парсилка получилась слегка тупая, например экранирование в строках она не поймёт, ну и хуй с ним.
Ну, чуть что сложнее, сразу хуй забиваешь. Типа уже влом. Парсилка json без таких вещей это как автомобиль без двух колес.
Да ладно, если парсилка для своего конфига и там это не нужно, то можно и без этого. Если понадобится, то тоже наверное не ахти какая сложная задача разобрать заэкранированные символы.
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628130
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
Самое охуенное - реализовано как пара .h файлов, заинклудил куда надо и у тебя парсится джисон сцуко.
Всё, больше никуя не надо.
Если моя софтина будет падать на каких-то JSON, я уже буду разбираться по мере сил.
Пытаться сделать сразу идеально - это не профессионально, профессионалы выдают решение в срок, а потом дорабатывают.
Ясно же что идеальная тачка это Mercedes-Maybach GLS - большая, пиздатая, красивая, по говну ездит, можно в салон положить много мешков картофеля, есть кондей и клёвый звук и подсветочка, но стоит 40 лямов, поэтому все ездят на солярисе.
В инженерном деле важен вопрос ресурсов и сроков!
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628136
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
W  24.11.2023, 20:19
[игнорируется]
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 20:13
[игнорируется]
JSON идеален - есть всё что надо
нет комментариев
как будешь объединять словари, если конфиг по нескольким файлам?
подчеркну еще раз - "словари", не "объекты"
Комментариев нет, это дико бесит ага.
Приходится создавать ключ "commentazaza" все время
Про словари и обьединение не понял
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628145
Дед-Папыхтет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бл заебись писать всякие понятные штуки типа парсера джейсон или хмл... Сука в банках же нужно писать какое то лютое говнище банковское в котором еще нужно как то разобраться да и легаси - это 100500 хуерыг до тебя чота писали на отъебись - открываешь процедуру там бл 5-10 тыс строк кода который другие подобные процедуры использует - в общем вникай как кто то что то писал до тебя и нужно срочно исправить чота бл не работает )))))

Да бл легаси лопатить говно это вам не с нуля хуйню запилить. Не против ничего имею и завидую тем у кого подобные задачи - джейсон распарсить, компрессию картинки или звука ебануть библиотеку написать ))))

Ладно это лирика - хочешь свободы иди пиши что хочешь, хочешь бабла - привет легаси с килотонной полуработающего говнокода.
...
Рейтинг: 1 / 0
Нравится: eNose
Написал парсер JSON приличный за пару вечеров.
    #628151
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
Дед-Папыхтет  24.11.2023, 20:28
[игнорируется]
Да бл легаси лопатить говно это вам не с нуля хуйню запилить. Не против ничего имею и завидую тем у кого подобные задачи - джейсон распарсить, компрессию картинки или звука ебануть библиотеку написать ))))
Понимаем, за это вам и платят 100500 тыр в сек.
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628189
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
W  24.11.2023, 20:40
[игнорируется]
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 20:23
[игнорируется]
W  24.11.2023, 20:19
[игнорируется]
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 20:13
[игнорируется]
JSON идеален - есть всё что надо
нет комментариев
как будешь объединять словари, если конфиг по нескольким файлам?
подчеркну еще раз - "словари", не "объекты"
Комментариев нет, это дико бесит ага.
Приходится создавать ключ "commentazaza" все время
Про словари и обьединение не понял
tanki.json
Код: JSON
1.
2.
3.
4.
5.
6.
{
   settings1: {
      key1: value1,
      key2: value2
   }
}
tanki.env1.json
Код: JSON
1.
2.
3.
4.
5.
6.
{
   settings1: {
      key1: value1,
      key2: value21
   }
}
tanki.env2.json
Код: JSON
1.
2.
3.
4.
5.
6.
7.
{
   settings1: {
      key1: value1,
      key2: value22,
      key3: value32,
   }
}
и на выходе, условно:

так
Код: C++
1.
2.
3.
4.
class settings1
{
    Dict<string, string> Items;
}
или так
Код: C++
1.
2.
3.
4.
5.
6.
class settings1
{
    string key1;
    string key2;
    // string key3; -- этого нет!!!
}
что там в итоге будет?
Господуля, есть только 1 JSON файл. Их слияния ли объединения - уже творческий вопрос, решаемый в нужном месте как надо.
Обычно никак не решаемый. Есть только 1 JSON, остальные никого не волнуют.
...
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628201
RonibTheGreat2!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сильтровая Мирево-Плоскостная Прала [игнорируется] 

изобрел велосипед. Уже давно есть хорошая библиотека от гугля которая все это делает. Оттестировано куча примеров к использованию.

https://mvnrepository.com/artifact/com.google.code.gson/gson
...
Изменено: 24.11.2023, 21:05 - RonibTheGreat2!
Рейтинг: 0 / 0
Написал парсер JSON приличный за пару вечеров.
    #628221
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
W  24.11.2023, 21:02
[игнорируется]
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 20:58
[игнорируется]
W  24.11.2023, 20:40
[игнорируется]
Сильтровая Мирево-Плоскостная Прала  24.11.2023, 20:23
[игнорируется]
W  24.11.2023, 20:19
[игнорируется]
...
Комментариев нет, это дико бесит ага.
Приходится создавать ключ "commentazaza" все время
Про словари и обьединение не понял
tanki.json
Код: JSON
1.
2.
3.
4.
5.
6.
{
   settings1: {
      key1: value1,
      key2: value2
   }
}
tanki.env1.json
Код: JSON
1.
2.
3.
4.
5.
6.
{
   settings1: {
      key1: value1,
      key2: value21
   }
}
tanki.env2.json
Код: JSON
1.
2.
3.
4.
5.
6.
7.
{
   settings1: {
      key1: value1,
      key2: value22,
      key3: value32,
   }
}
и на выходе, условно:

так
Код: C++
1.
2.
3.
4.
class settings1
{
    Dict<string, string> Items;
}
или так
Код: C++
1.
2.
3.
4.
5.
6.
class settings1
{
    string key1;
    string key2;
    // string key3; -- этого нет!!!
}
что там в итоге будет?
Господуля, есть только 1 JSON файл. Их слияния ли объединения - уже творческий вопрос, решаемый в нужном месте как надо.
Обычно никак не решаемый. Есть только 1 JSON, остальные никого не волнуют.
то есть ты решил только часть задачи. даже для конфига этого мало
Почему мало, конфиг - это только 1 файл.
У тебя типа монгослойный конфиг?
Ну это можно порешать уже в отдельном коде комбинирования.
...
Рейтинг: 0 / 1
Не нравится: a.v.z
Написал парсер JSON приличный за пару вечеров.
    #628223
Псина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[заблокирован]
RonibTheGreat2!  24.11.2023, 21:03
[игнорируется]
Сильтровая Мирево-Плоскостная Прала [игнорируется] 

изобрел велосипед. Уже давно есть хорошая библиотека от гугля которая все это делает. Оттестировано куча примеров к использованию.

https://mvnrepository.com/artifact/com.google.code.gson/gson
Позырь сколько на гитхабе перспективных проектов парсилок JSON.
Если б всех устраивал гугл, наверное такой свистопляски бы не было.
Там даже битвы на скорость парсинга проводят.
...
Рейтинг: 0 / 0
25 сообщений из 96, страница 1 из 4
Форумы / Просто Трёп [закрыт для гостей] / Написал парсер JSON приличный за пару вечеров.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (2): Анонимы (2)
Игнорируют тему (1): Гарыныч
Читали форум (99): Анонимы (89), Дед-Папыхтет, S Baltiki, Arn, erbol 1 мин., Кусь 2 мин., unique 3 мин., Артефакт 4 мин., prostozevs 5 мин., Брюквенные годы 6 мин., Vaska Balboa 8 мин.
Пользователи онлайн (134): Анонимы (117), Дед-Папыхтет, S Baltiki, IT-Клоп, Yandex Bot, erbol, pashtetos1, Arn, Буся, Кусь 2 мин., жЫвоглот 3 мин., unique 3 мин., Артефакт 4 мин., prostozevs 5 мин., Брюквенные годы 6 мин., Bing Bot 6 мин., Vaska Balboa 7 мин., XEugene 9 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]