JSON Schema Validator

Írtam egy JSON Schema validatort Java-ban, itt található a forráskódja. Azoknak lehet hasznos, akik a Crockford-féle JSON API-t akarják használni Java-ban.

Szórakozásnak jó volt, néhány embernek talán hasznos is (rajtam kívül).

Hozzászólások

Az fge-féle library a jackson-t használja a JSON-adatok reprezentálására java-ban. Szóval ha én mondjuk a Crockford-féle org.json library-t akarom használni, de az fge-féle schema validatorral akarnék validálni, akkor kb
* parszolom jacksonnal a JSON stringet
* az fge-féle schema validatorral validálom
* ha jó, akkor a Crockford-féle org.json library-val újra parszolom.

Ez a kétszer-parszolás nyilván nem jó (persze aki jackson-t akar használni a java kódjából a json feldolgozására, azt ez nem érinti).

Szerk.: Megnéztem a teljesítménytesztet, az itthoni gépemen a következők jöttek ki:
* az fge-féle library 8.8sec - 10.7sec között van
* a sajátom 2.1sec - 2.7sec között

Nem tudom, hogy ő milyen gépen futtatta a tesztjét, hogy 1sec alatt lefutott neki, de elég durva lehet :)
Mindenesetre ez az eredmény nekem kicsit gyanúsan jó. Feltoltam githubra a tesztemet, ha gondolod, nézz rá, próbáld ki localban stb.

Köszi, megnéztem közben az fge féle forrást, valóban elég macerás lenne más libet támogatni vele.
Ami a regexeket illeti: lehet, hogy a beépített Java regex használata nem kellően szabványos, az megenged az ecma-262-től eltérő kifejezéseket is (bár ilyen nincs a teljesítményt tesztelő doksiban).
Tetszik, hogy kevés függősége van. :) (A KNIME-ban a javax.json/JSR353 (jsonp) parsert használjuk az fge-féle JSON validátorral, így mi nem ússzuk meg az oda-vissza konverziót és a regexek miatt a rhino függőség is kellett.)
Szintén tetszik, hogy a tied/tietek kapásból OSGi bundle is. Szép munka. :)

Köszi :)
A regexekbe nem másztam bele (részben munkaidőben fejlesztem ezt a libet, aztán kezdtem már kicsit kifutni a rászánt időből). A többé-kevésbé hivatalos test suite be van lapátolva a projekte integrációs tesztként, addig nyomtam, hogy azon átmenjen :)

Közben megtekertem a teljesítményteszteket a munkahelyi gépemen is, az fge lib 6.5 - 7.5 sec között fut le, az everites 1.4 - 1.8 sec között.