Create a Document from a JavaBean
You can create a new JSON document in your Java OJAI client by passing a JavaBean to
the Connection.newDocument(Object bean)
method. Through an example, the content
shows you a sample JavaBean class, how to create a bean for that class, how to create a JSON
document from the bean, and how to convert a JSON document back to a bean.
Sample JavaBean Class
Suppose that you are using a JavaBean class named
ExampleJson
:
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({ "a", "b", "array" }) public class ExampleJson { @JsonProperty("a") private Double a; @JsonProperty("b") private String b; @JsonProperty("array") private List<Object> array = new ArrayList<Double>(); @JsonIgnore private Map<String, Object> additionalProperties = new HashMap<String, Object>(); /** * * @return * The a */ @JsonProperty("a") public Double getA() { return a; } /** * * @param a * The a */ @JsonProperty("a") public void setA(Double a) { this.a = a; } /** * * @return * The b */ @JsonProperty("b") public String getB() { return b; } /** * * @param b * The b */ @JsonProperty("b") public void setB(String b) { this.b = b; } /** * * @return * The array */ @JsonProperty("array") public List<Object> getArray() { return array; } /** * * @param array * The array */ @JsonProperty("array") public void setArray(List<Object> array) { this.array = array; } @JsonAnyGetter public Map<String, Object> getAdditionalProperties() { return this.additionalProperties; } @JsonAnySetter public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } }
Create a Bean
You can create a bean for the ExampleJson
class with the following
code:
ExampleJson bean = new ExampleJson(); bean.setA(1); bean.setB("aString"); List arrList = new ArrayList(); arrList.add(1); arrList.add(2); arrList.add("arrStr"); Map arrMap = new HashMap(); arrMap.put("c","arrMapStr"); arrList.add(arrMap); bean.setArray(arrList);
Create a New Document from a Bean
After creating the ExampleJson
bean, you can create a JSON document using
the bean with the following call:
Document pojoDoc = connection.newDocument(bean);
The document will have the following structure:
{ "a":1, "b":"aString", "array":[ 1, 2, "arrStr", { "c":"arrMapStr" } ] }
Create a JavaBean from a JSON Document
You can also create a JavaBean from a JSON document. For example, suppose you modify the document that you created earlier:
pojoDoc.set("d","10");
The following converts the modified document back into an ExampleJson
bean:
ExampleJson bean = pojoDoc.toJavaBean(ExampleJson.class);