Generate Java types from JSON or JSON Schema and annotate those types for data-binding with Jackson, Gson, etc
6,380
stars
1,384
commits
Java
primary language
May 2, 2026
updated
jsonschema2pojo generates Java types from JSON Schema (or example JSON) and can annotate those types for data-binding with Jackson 2.x, Jackson 3.x, or Gson.
brew install jsonschema2pojoYou can use jsonschema2pojo as a Maven plugin, a command line utility, a Gradle plugin or embedded within your own Java app. The Getting Started guide will show you how.
A very simple Maven example:
<plugin>
<groupId>org.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>1.3.3</version>
<configuration>
<sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
<targetPackage>com.example.types</targetPackage>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
A very simple Gradle example:
plugins {
id "java"
id "org.jsonschema2pojo" version "1.3.3"
}
repositories {
mavenCentral()
}
jsonSchema2Pojo {
targetPackage = 'com.example'
}
Useful pages:
Project resources:
Special thanks:
Licensed under the Apache License, Version 2.0.
(top 30 of 97)
Java
97.5%
Groovy
1.9%
Generate Java types from JSON or JSON Schema and annotate those types for data-binding with Jackson, Gson, etc
6,380
stars
1,384
commits
Java
primary language
May 2, 2026
updated
jsonschema2pojo generates Java types from JSON Schema (or example JSON) and can annotate those types for data-binding with Jackson 2.x, Jackson 3.x, or Gson.
brew install jsonschema2pojoYou can use jsonschema2pojo as a Maven plugin, a command line utility, a Gradle plugin or embedded within your own Java app. The Getting Started guide will show you how.
A very simple Maven example:
<plugin>
<groupId>org.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>1.3.3</version>
<configuration>
<sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
<targetPackage>com.example.types</targetPackage>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
A very simple Gradle example:
plugins {
id "java"
id "org.jsonschema2pojo" version "1.3.3"
}
repositories {
mavenCentral()
}
jsonSchema2Pojo {
targetPackage = 'com.example'
}
Useful pages:
Project resources:
Special thanks:
Licensed under the Apache License, Version 2.0.
(top 30 of 97)
Java
97.5%
Groovy
1.9%