Unify-jdocs is a Java JSON manipulation library which completely eliminates the need for model / POJO classes. Any read or write of a JSON path can be done in a single line of Java code. It can also eliminate the use of JSON schema as it has features to define a document structure and validate both the structure and values in a JSON document. You can find the details here: https://github.com/americanexpress/unify-jdocs.<p>We announced the first release of unify-jdocs in August 2020. Since then, it has undergone multiple feature enhancements and has been used extensively within American Express as part of the project it was developed for. We have had tremendous success with it and have been able to reduce the size of our codebase substantially, make it much easier for developers and improve maintainability and agility significantly. Unify-jdocs has been invoked billons of times in production and has demonstrated great reliability. The original post can be found here: https://news.ycombinator.com/item?id=24332382.<p>Reason for posting again – last time while submitting on Show HN, I listed the URL in the URL field and so this text of mine was not visible! And so, I try to continue to promote unify-jdocs.<p>This is a one-of-a-kind library in my opinion. Two features stand out – read / write any JSON path in a single line of code – and define a document structure and validate a JSON document against it – along with a host of other features. It makes life so much simpler for any Java project that deals with JSON documents.<p>For projects that deal with more than a few simple JSON documents, need to do transformations and change structure during project lifetime, unify-jdocs absolutely shines. It provides a much simpler way of validating documents as compared to JSON schema.<p>One counter argument which I have heard come up again and again against using unify-jdocs is around static / dynamic type safety. When we use POJOs, the read / write operations on the document are statically compiled into the app JAR file whereas in the case of unify-jdocs, these operations take place dynamically at run time. In my opinion, the benefits we get from using dynamic typing outweigh the benefits of static typing using POJO / model classes. Looking forward to discussing more. Thanks.
> the benefits we get from using dynamic typing outweigh the benefits of static typing<p>The trend seems to be in the opposite direction. People became frustrated with the lack of types in Python and JavaScript, hence we get Python with typing and TypeScript.<p>Strong, development time, typing catches many bugs much earlier with less effort.<p>> Reason for posting again....<p>Most people use the link version of a post and then make a comment with some text, if it sufficiently adds context or value, i.e. don't just copy the same landing text<p>I think you will find less traction with this method of posting to HN. People want a clickable link to look at the project