2015-02-26 2 views
1

У меня огромный файл архива Apache, который мне нужен для анализа и хранения информации в соответствии с моим приложением.Parse Apache Thrift file

Я мог бы сделать это вручную, читая строковые строки.

Но он всегда подвержен ошибкам, а что нет. Итак, есть ли какой-нибудь API и т. Д., Которые я могу использовать для быстрого и эффективного анализа файла?

Если нет, любые другие предложения?

+0

Есть несколько инструментов, которые могут использовать Трайф IDL, например, Finagle и другие. Я лично никогда не занимался ни одним из них до сих пор, поэтому никаких гарантий здесь нет. Другой способ - использовать код компилятора Thrift и написать собственный генератор для того, что вы планируете делать. Это может помочь узнать немного больше о последнем, чтобы дать более целенаправленный ответ. Увы, SO - неправильное место для таких вопросов. Вы можете спросить в списках рассылки, стоит попробовать. – JensG

+0

Спасибо за ответ. Я буду иметь в виду ваше предложение в следующий раз. :-) – nullpointer

ответ

0

В инструменте Facebook Swift имеется анализатор IDR, который реализован на Java, если это соответствует вашему проекту: https://github.com/facebook/swift/tree/master/swift-idl-parser. Если ваше приложение .NET, вы все равно сможете использовать эту библиотеку, если вы можете перевести JAR-синтаксический анализатор с помощью IKVM.NET. Существует также ANTLR-грамматика, если вы хотите разработать собственный парсер.

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