Hii all,
I have this java class with 3 enum inner class. I am trying to convert my
JSON string into this JAVA class. But for this class I always get null as
an output. I have tried many different approaches including a customized
deserialize class but I still cant figure out what I am doing wrong. can
someone help me with this?
I use the following code to convert the Json string into the Java POJO:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.enable(READ_ENUMS_USING_TO_STRING);
CubeItem parameters = mapper.convertValue(ObjJSON, CubeItem.class);
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.annotations.ApiModelProperty;
import java.util.Objects;
/**
* CubeItem
*/
public class CubeItem {
/**
* Gets or Sets upperCubeHalf
*/
public enum UpperCubeHalfEnum {
BLACK("BLACK"),
WHITE("WHITE"),
TRANSPARENT("TRANSPARENT");
private String value;
UpperCubeHalfEnum(String value) {
this.value = value;
}
@Override
@JsonValue
public String toString() {
return String.valueOf(value);
}
@JsonCreator
public static UpperCubeHalfEnum fromValue(String text) {
for (UpperCubeHalfEnum b : UpperCubeHalfEnum.values()) {
if (String.valueOf(b.value).equals(text)) {
return b;
}
}
return null;
}
}
public CubeItem(){}
public CubeItem(UpperCubeHalfEnum upperCubeHalf, LowerCubeHalfEnum
lowerCubeHalf, InlayEnum inlay) {
this.upperCubeHalf = upperCubeHalf;
this.lowerCubeHalf = lowerCubeHalf;
this.inlay = inlay;
}
@JsonProperty("UpperCubeHalf")
private UpperCubeHalfEnum upperCubeHalf = null;
/**
* Gets or Sets lowerCubeHalf
*/
public enum LowerCubeHalfEnum {
BLACK("BLACK"),
WHITE("WHITE");
private String value;
LowerCubeHalfEnum(String value) {
this.value = value;
}
@Override
@JsonValue
public String toString() {
return String.valueOf(value);
}
@JsonCreator
public static LowerCubeHalfEnum fromValue(String text) {
for (LowerCubeHalfEnum b : LowerCubeHalfEnum.values()) {
if (String.valueOf(b.value).equals(text)) {
return b;
}
}
return null;
}
}
@JsonProperty("LowerCubeHalf")
private LowerCubeHalfEnum lowerCubeHalf = null;
/**
* Gets or Sets inlay
*/
public enum InlayEnum {
RED("RED"),
WHITE("WHITE"),
BLUE("BLUE");
private String value;
InlayEnum(String value) {
this.value = value;
}
@Override
@JsonValue
public String toString() {
return String.valueOf(value);
}
@JsonCreator
public static InlayEnum fromValue(String text) {
for (InlayEnum b : InlayEnum.values()) {
if (String.valueOf(b.value).equals(text)) {
return b;
}
}
return null;
}
}
@JsonProperty("Inlay")
private InlayEnum inlay = null;
public CubeItem upperCubeHalf(UpperCubeHalfEnum upperCubeHalf) {
this.upperCubeHalf = upperCubeHalf;
return this;
}
/**
* Get upperCubeHalf
* @return upperCubeHalf
**/
@ApiModelProperty(value = "")
public UpperCubeHalfEnum getUpperCubeHalf() {
return upperCubeHalf;
}
public void setUpperCubeHalf(UpperCubeHalfEnum upperCubeHalf) {
this.upperCubeHalf = upperCubeHalf;
}
public CubeItem lowerCubeHalf(LowerCubeHalfEnum lowerCubeHalf) {
this.lowerCubeHalf = lowerCubeHalf;
return this;
}
/**
* Get lowerCubeHalf
* @return lowerCubeHalf
**/
@ApiModelProperty(value = "")
public LowerCubeHalfEnum getLowerCubeHalf() {
return lowerCubeHalf;
}
public void setLowerCubeHalf(LowerCubeHalfEnum lowerCubeHalf) {
this.lowerCubeHalf = lowerCubeHalf;
}
public CubeItem inlay(InlayEnum inlay) {
this.inlay = inlay;
return this;
}
/**
* Get inlay
* @return inlay
**/
@ApiModelProperty(value = "")
public InlayEnum getInlay() {
return inlay;
}
public void setInlay(InlayEnum inlay) {
this.inlay = inlay;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
CubeItem cubeItem = (CubeItem) o;
return Objects.equals(this.upperCubeHalf, cubeItem.upperCubeHalf) &&
Objects.equals(this.lowerCubeHalf, cubeItem.lowerCubeHalf) &&
Objects.equals(this.inlay, cubeItem.inlay);
}
@Override
public int hashCode() {
return Objects.hash(upperCubeHalf, lowerCubeHalf, inlay);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class CubeItem {\n");
sb.append(" upperCubeHalf:
").append(toIndentedString(upperCubeHalf)).append("\n");
sb.append(" lowerCubeHalf:
").append(toIndentedString(lowerCubeHalf)).append("\n");
sb.append(" inlay: ").append(toIndentedString(inlay)).append("\n");
sb.append("}");
return sb.toString();
}
/**
* Convert the given object to string with each line indented by 4 spaces
* (except the first line).
*/
private String toIndentedString(Object o) {
if (o == null) {
return "null";
}
return o.toString().replace("\n", "\n ");
}
}
--
You received this message because you are subscribed to the Google Groups
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.