67 次浏览

使用antlr4对json、xml互相转换(ToDo)

antlr4貌似和我学的八竿子搭不着,这一切都得从一本hive的书说起,里面提了以下这个antlr4,又碰巧自己遇到需要在不同sql平台写同一个功能sql的场景,受尽折磨,一个ddl语句三个平台,不同语法,属实是整吐了,所以想自己开发一个功能,对同样功能的sql,写一个代码,然后转换以下即可适配。愿望很美好,前面使用python+正则表达式,发现慢慢去适配不同情况太痛苦了。上帝关了门,就会留一扇窗,遇到了antlr,属实给我震惊了(甚至可以用antlr写一门自己的语言,这个当然也在规划之内)。我可以直接用它来开发我想要的功能了。antlr4就不过多介绍了,拿一本《antlr4权威指南》即可上手

问题

对于json与xml的互相转换,网上有一大堆的方法去做。当我们考虑这两种规则的语言转换时,是一对一的,写两个方向映射就可以解决,但是当加入一个csv结构进来时,如果按一对一转换,就要写更多代码了,当需要兼容更多场景的时候,这个增长速度就是很快的了。这时如果可以像有个中间站做转换,进行相应的input写与output读,就可以将工作难度降低。

reference
1. https://engineering.mongodb.com/post/transpiling-between-any-programming-languages-part-1
2. https://stackoverflow.com/questions/31511610/antlr-source-to-target-language-conversion
3. 《antlr4权威指南》