Based on @bharat's answer (note different Classes)
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "url" })
public class Default {
@JsonProperty("url")
private String url;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The url
*/
@JsonProperty("url")
public String getUrl() {
return url;
}
/**
*
* @param url
* The url
*/
@JsonProperty("url")
public void setUrl(String url) {
this.url = url;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
package com.example;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "kind", "etag", "pageInfo", "items" })
public class Example {
@JsonProperty("kind")
private String kind;
@JsonProperty("etag")
private String etag;
@JsonProperty("pageInfo")
private PageInfo pageInfo;
@JsonProperty("items")
private List<Item> items = new ArrayList<Item>();
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The kind
*/
@JsonProperty("kind")
public String getKind() {
return kind;
}
/**
*
* @param kind
* The kind
*/
@JsonProperty("kind")
public void setKind(String kind) {
this.kind = kind;
}
/**
*
* @return The etag
*/
@JsonProperty("etag")
public String getEtag() {
return etag;
}
/**
*
* @param etag
* The etag
*/
@JsonProperty("etag")
public void setEtag(String etag) {
this.etag = etag;
}
/**
*
* @return The pageInfo
*/
@JsonProperty("pageInfo")
public PageInfo getPageInfo() {
return pageInfo;
}
/**
*
* @param pageInfo
* The pageInfo
*/
@JsonProperty("pageInfo")
public void setPageInfo(PageInfo pageInfo) {
this.pageInfo = pageInfo;
}
/**
*
* @return The items
*/
@JsonProperty("items")
public List<Item> getItems() {
return items;
}
/**
*
* @param items
* The items
*/
@JsonProperty("items")
public void setItems(List<Item> items) {
this.items = items;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "url" })
public class High {
@JsonProperty("url")
private String url;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The url
*/
@JsonProperty("url")
public String getUrl() {
return url;
}
/**
*
* @param url
* The url
*/
@JsonProperty("url")
public void setUrl(String url) {
this.url = url;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "kind", "etag", "id", "snippet" })
public class Item {
@JsonProperty("kind")
private String kind;
@JsonProperty("etag")
private String etag;
@JsonProperty("id")
private String id;
@JsonProperty("snippet")
private Snippet snippet;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The kind
*/
@JsonProperty("kind")
public String getKind() {
return kind;
}
/**
*
* @param kind
* The kind
*/
@JsonProperty("kind")
public void setKind(String kind) {
this.kind = kind;
}
/**
*
* @return The etag
*/
@JsonProperty("etag")
public String getEtag() {
return etag;
}
/**
*
* @param etag
* The etag
*/
@JsonProperty("etag")
public void setEtag(String etag) {
this.etag = etag;
}
/**
*
* @return The id
*/
@JsonProperty("id")
public String getId() {
return id;
}
/**
*
* @param id
* The id
*/
@JsonProperty("id")
public void setId(String id) {
this.id = id;
}
/**
*
* @return The snippet
*/
@JsonProperty("snippet")
public Snippet getSnippet() {
return snippet;
}
/**
*
* @param snippet
* The snippet
*/
@JsonProperty("snippet")
public void setSnippet(Snippet snippet) {
this.snippet = snippet;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "title", "description" })
public class Localized {
@JsonProperty("title")
private String title;
@JsonProperty("description")
private String description;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The title
*/
@JsonProperty("title")
public String getTitle() {
return title;
}
/**
*
* @param title
* The title
*/
@JsonProperty("title")
public void setTitle(String title) {
this.title = title;
}
/**
*
* @return The description
*/
@JsonProperty("description")
public String getDescription() {
return description;
}
/**
*
* @param description
* The description
*/
@JsonProperty("description")
public void setDescription(String description) {
this.description = description;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "url" })
public class Medium {
@JsonProperty("url")
private String url;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The url
*/
@JsonProperty("url")
public String getUrl() {
return url;
}
/**
*
* @param url
* The url
*/
@JsonProperty("url")
public void setUrl(String url) {
this.url = url;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "totalResults", "resultsPerPage" })
public class PageInfo {
@JsonProperty("totalResults")
private Integer totalResults;
@JsonProperty("resultsPerPage")
private Integer resultsPerPage;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The totalResults
*/
@JsonProperty("totalResults")
public Integer getTotalResults() {
return totalResults;
}
/**
*
* @param totalResults
* The totalResults
*/
@JsonProperty("totalResults")
public void setTotalResults(Integer totalResults) {
this.totalResults = totalResults;
}
/**
*
* @return The resultsPerPage
*/
@JsonProperty("resultsPerPage")
public Integer getResultsPerPage() {
return resultsPerPage;
}
/**
*
* @param resultsPerPage
* The resultsPerPage
*/
@JsonProperty("resultsPerPage")
public void setResultsPerPage(Integer resultsPerPage) {
this.resultsPerPage = resultsPerPage;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "publishedAt", "channelId", "title", "description", "thumbnails", "channelTitle", "localized" })
public class Snippet {
@JsonProperty("publishedAt")
private String publishedAt;
@JsonProperty("channelId")
private String channelId;
@JsonProperty("title")
private String title;
@JsonProperty("description")
private String description;
@JsonProperty("thumbnails")
private Thumbnails thumbnails;
@JsonProperty("channelTitle")
private String channelTitle;
@JsonProperty("localized")
private Localized localized;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The publishedAt
*/
@JsonProperty("publishedAt")
public String getPublishedAt() {
return publishedAt;
}
/**
*
* @param publishedAt
* The publishedAt
*/
@JsonProperty("publishedAt")
public void setPublishedAt(String publishedAt) {
this.publishedAt = publishedAt;
}
/**
*
* @return The channelId
*/
@JsonProperty("channelId")
public String getChannelId() {
return channelId;
}
/**
*
* @param channelId
* The channelId
*/
@JsonProperty("channelId")
public void setChannelId(String channelId) {
this.channelId = channelId;
}
/**
*
* @return The title
*/
@JsonProperty("title")
public String getTitle() {
return title;
}
/**
*
* @param title
* The title
*/
@JsonProperty("title")
public void setTitle(String title) {
this.title = title;
}
/**
*
* @return The description
*/
@JsonProperty("description")
public String getDescription() {
return description;
}
/**
*
* @param description
* The description
*/
@JsonProperty("description")
public void setDescription(String description) {
this.description = description;
}
/**
*
* @return The thumbnails
*/
@JsonProperty("thumbnails")
public Thumbnails getThumbnails() {
return thumbnails;
}
/**
*
* @param thumbnails
* The thumbnails
*/
@JsonProperty("thumbnails")
public void setThumbnails(Thumbnails thumbnails) {
this.thumbnails = thumbnails;
}
/**
*
* @return The channelTitle
*/
@JsonProperty("channelTitle")
public String getChannelTitle() {
return channelTitle;
}
/**
*
* @param channelTitle
* The channelTitle
*/
@JsonProperty("channelTitle")
public void setChannelTitle(String channelTitle) {
this.channelTitle = channelTitle;
}
/**
*
* @return The localized
*/
@JsonProperty("localized")
public Localized getLocalized() {
return localized;
}
/**
*
* @param localized
* The localized
*/
@JsonProperty("localized")
public void setLocalized(Localized localized) {
this.localized = localized;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Generated;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({ "default", "medium", "high" })
public class Thumbnails {
@JsonProperty("default")
private Default _default;
@JsonProperty("medium")
private Medium medium;
@JsonProperty("high")
private High high;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
/**
*
* @return The _default
*/
@JsonProperty("default")
public Default getDefault() {
return _default;
}
/**
*
* @param _default
* The default
*/
@JsonProperty("default")
public void setDefault(Default _default) {
this._default = _default;
}
/**
*
* @return The medium
*/
@JsonProperty("medium")
public Medium getMedium() {
return medium;
}
/**
*
* @param medium
* The medium
*/
@JsonProperty("medium")
public void setMedium(Medium medium) {
this.medium = medium;
}
/**
*
* @return The high
*/
@JsonProperty("high")
public High getHigh() {
return high;
}
/**
*
* @param high
* The high
*/
@JsonProperty("high")
public void setHigh(High high) {
this.high = high;
}
@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
Or DIY for instance using http://www.jsonschema2pojo.org/