Pojo to json schema v4 and vice versa via maven - java

I am trying to come up with a set of documents for one of our projects where there is a requirement to convert Java POJOs to JSON Schema 4 and sometimes JSON schema 4 back to POJOs. I couldn't find a maven plug-in that does both of it.
I was able to find https://github.com/wodzuu/JSONschema4-mapper for JSON Schema generation and https://github.com/joelittlejohn/jsonschema2pojo for PoJo generation.
I am sure it is a very common use case, so just writing to check what you folks used to get past this? Any inputs

I have been using jsonschema2pojo for a long time and am very supportive of this nice library and its tooling.
To generate JsonSchema out of POJO:
First, it should be very doable, for a POJO class can be converted to JSON using JSON serializing tools (jackson etc...). Just convert a sample of your POJO to JSON and jsonschema2pojo can generate a JSONSchema out of if. Other than that, integrating it to maven must be as easy as just executing a command in maven.
Second, you can submit a feature request to the developer. The community is very active..
Hope it helps.

Related

How to exclude some fields from json schema

I am trying to generate POJO classes from JSON schema using jsonschema2pojo in java spring boot. I am using the maven plugin mode of it. I like to exclude some fields which are in the schema, but it seems this feature is not supported in the jsonschema2pojo library as per https://github.com/joelittlejohn/jsonschema2pojo/issues/966.
Any suggestion on how can I achieve this? or any other library which supports this feature?

Json schema validation in Spring REST APIs

I’m building a REST API using Spring Boot and [jackson-module-jsonSchema] (https://github.com/FasterXML/jackson-module-jsonSchema) for JSON schema generation.
I’m looking the best way to validate the request JSON payload arriving to my APIs endpoints (Spring controllers) against the defined JSON schema defined for the exposed resource, validation includes check required fields , format , min and max values, etc.. everything we can validate against the schema.
Seems jackson json schema module is useful for schema generation but not for validation, am I right?
Any suggestion on how to achieve what I’m trying to do?
If you take a look at JSON schema site, there are only two libraries for validation in Java.
The one that Jorge Campos suggested is mature, but looking for new maintainer: https://github.com/fge/json-schema-validator
Second one is relatively new: http://github.com/everit-org/json-schema
I was recently in situation where I had to choose one or the other and I picked first option. It is being used also by Rest Assured library under the hood.
You can also look at Rest Assured Json Schema validator
https://www.baeldung.com/rest-assured-json-schema

Marshalling entity to JSON using JAXB on Wildfly

Is it possible using Wildfly's JAXB implementation?
There is an answer Converting Java Object to Json using Marshaller, but it seems to be implementation specific.
if you were constrained to use the jaxb (for example, when you need the flexibility to have both xml and json class in the same spot) you might want to refer to these
Wildfly Reference
A Simple tutorial, from MKYong
but if the jaxb is not a constraint to have, i reccomend using either GSON or jackson. they are both relatively easy to use when reading json to a POJO and vice-versa
JSR-353 does not include object binding. If you want to marshal/unmarshal JSON you'd have to using something like Jackson.
It does you know real good now, but there is JSR-367 to include bindings in Java EE 8.

Jackson processor for java bean to json\xml serialization

Hi I am having a java bean and i need to serialize it to json. For this purpose i am using the jackson processor which is very powerful. But I also need to convert the java bean to XML.
Can this be achieved using the jackson processor ?? If yes then please provide with the links where I can get the examples.
Thanks!!!!
If you want to keep Jackson and JSON out of your pojos, you can create a translation layer that can translate to a JAXB object and use pure JAXB (JAXB being one possible implementation in this case). If your domain objects map straight to the rendered JSON or you can use mixins/PropertyNamingStrategy, you will need no annotations in your pojos. I'm not sure if this is applicable in your situation but I know that many environments strive for this.
Definitely! Jackson obviously has first-class support for JSON; but there is also simple extension module to do "mini-JAXB": jackson-xml-databind.
With Jackson's support for JAXB annotations (or not, if you just prefer Jackson's own annotations & xml module's couple additional ones), it's definitely possible to do both JSON and XML just using Jackson functionality.
I mostly recommend this for cases where XML support is a legacy thing (which is what most new services do). If XML is the main focus, it may make more sense to use JAXB.
But even then I recommend against using conversion layers from XML to JSON; ones I have seen used have been plagues with issues when they conversion at data format layer, which IMO is completely wrong place to do it. This is also why Jackson does not try converting JSON to XML (or vice versa); rather, it only supports converting POJOs to/from external data formats.
Yes it is possible. You would need to annotate your Java bean using the JAXB annotations which will give you the XML marshalling and unmarshalling support. Then, using Jackson's support for JAXB annotations you can go back and forth between Java and JSON.

A tool for transforming POJO to XML and JSON, based on xml-mapping is needed

I need an open-source tool which can convert POJOs to XML and JSON strings.
Jersey (and probably other JAX-RS implementations) would fit these requirements if mappings could be configured through xml-files but not through annotations.
Is there anything suitable?
POJO to XML
JAXB is the Java standard (JSR-222) for converting Java objects to/from XML (I am a member of the JAXB expert group):
http://bdoughan.blogspot.com/2010/07/jaxb-xml-binding-standard.html
POJO to JSON
People have been using JAXB with Jettison to produce JSON. This is how Jersey (JAX-RS reference implementation) converts POJOs to JSON by default.
http://bdoughan.blogspot.com/2011/04/jaxb-and-json-via-jettison.html
XML Configuration
If you require the ability to configure the metadata via XML, then you can use EclipseLink JAXB (MOXy), I'm the MOXy tech lead:
http://bdoughan.blogspot.com/2010/12/extending-jaxb-representing-annotations.html
There are lots of suitable JSON libraries; aside from GSON that was mentioned, Jackson is an obvious choice. Typically you don't need any annotations; but even if you neded, Jackson can use so-called mix-in annotations which means associating configuration, not modifying actual POJOs. Finally, Jackson supports JAXB annotations if you must use them (for example, when using JAXB for producing XML).
And as an added bonus, there is Jackson extension module, jackson-xml-databind, which can data bind POJOs to and from XML, so you can just use one library for both.
Have you tried Castor?
http://www.castor.org/
Supports XML mapping -
http://www.castor.org/xml-mapping.html
From XML, you could use json-lib if you need JSON.
http://answers.oreilly.com/topic/278-how-to-convert-xml-to-json-in-java/
Check out GSON for converting POJOs to JSON:
http://code.google.com/p/google-gson/
We've been using for a couple of years now. Very excellent library.
For POJOs to XML, Jersey uses JAXB or you could roll your own serializer.

Categories

Resources