天天看點

groovy/java自實作json解析器(1)緒論

groovy是一門以java為基礎的動态語言,它強大地動态特性為我們的靈活開發帶來了極大的便利,下面是一個由grovvy(完美相容嵌套java實作的json)解析器的部分代碼展示,我們都知道,json字元串隻要滿足格式要求,那麼它是可以無限循環嵌套的,而本解析器的核心實作就是大量的遞歸函數運用,将json字元串一層層地解析開,并拼裝成我們相應的數組或對象。它主要由以下五個類組成:

——jsonobject.groovy ——jsonarray.groovy ——jsontool.groovy ——stringtojson.groovy ——dealjson.groovy

其中:

1. jsonobject.groovy:完成了json格式字元<–>json對象<–>自定義(java+groovy風格)類對象(–>通過反射實作)的轉換功能

2. jsonarray.groovyjson:完成了格式字元<–>json數組<–>connection/array的轉換功能,其中connection特指java中集合的超類,而這裡能完成實作了connection類的子類(list,set)的轉化。

3. jsontool.groovy json字元串轉換的工具函數,主要用于輔助jsonobject/jsonarray類的功能實作

4. stringtojson.groovy,能把滿足json格式的jsons數組和對象轉化為我們這裡相應定義的jsonarray和jsonobject。

5. dealjson.groovy,實作了一些輔助的json工具功能,如校驗json字元串格式是否滿足要求,進行轉義,結合html進行“塗色”等。

上面可能不是講得很仔細,下面讓我們結合具體的程式來逐漸分析。