Понадобилось распарсить JSON, который возвращает RIPE DB API (например, http://lab.db.ripe.net/whois/lookup/ripe/aut-num/as6697.json) и достать из него связи между AS. Внезапно, внутри этого JSON лежат строки, а в строках - RPSL атрибуты, со своей грамматикой. Т.е. "структурировали, структурировали, но недовыструктурировали".
Мало того, что для нормального парсинга этого JSON пришлось склепать самодельный паттерн-матчер по пути в дереве, чтобы не переделывать, когда авторам этого сервиса червь прикажет формат менять, так еще и атрибуты после доставания из JSON нужно парсить по надиктованной усеницами грамматике.
Пришлось достать из гроба один старый проект с парсер-комбинаторами на LINQ и им парсить.
Мало того, что для нормального парсинга этого JSON пришлось склепать самодельный паттерн-матчер по пути в дереве, чтобы не переделывать, когда авторам этого сервиса червь прикажет формат менять, так еще и атрибуты после доставания из JSON нужно парсить по надиктованной усеницами грамматике.
Пришлось достать из гроба один старый проект с парсер-комбинаторами на LINQ и им парсить.