title: json not deserializing correctly
body: <pre><code> {
    &quot;devices&quot;: {
      &quot;id&quot;: &quot;F0C4DE69-03FF-4E48-BD48-AD2918E3D43F&quot;,
      &quot;name&quot;: &quot;Stera&quot;,
      &quot;description&quot;: &quot;Stera Credit Card Terminal&quot;,
      &quot;deviceType&quot;: 3,
      &quot;deviceTypeName&quot;: &quot;CreditCard&quot;,
      &quot;version&quot;: &quot;1.0.0&quot;,
      &quot;deviceSettings&quot;: [
        {
          &quot;name&quot;: &quot;COM Port&quot;,
          &quot;description&quot;: &quot;Port&quot;,
          &quot;value&quot;: &quot;COM1&quot;,
          &quot;settingType&quot;: 0
        },
        {
          &quot;name&quot;: &quot;Speed&quot;,
          &quot;description&quot;: &quot;Speed&quot;,
          &quot;value&quot;: 9600,
          &quot;settingType&quot;: 2
        },
        {
          &quot;name&quot;: &quot;Data Lenght&quot;,
          &quot;description&quot;: &quot;Data Lenght&quot;,
          &quot;value&quot;: 8,
          &quot;settingType&quot;: 2
        },
        {
          &quot;name&quot;: &quot;Parity&quot;,
          &quot;description&quot;: &quot;Parity&quot;,
          &quot;value&quot;: 0,
          &quot;settingType&quot;: 2
        },
        {
          &quot;name&quot;: &quot;Stop Bit&quot;,
          &quot;description&quot;: &quot;Stop Bit&quot;,
          &quot;value&quot;: 1,
          &quot;settingType&quot;: 2
        },
        {
          &quot;name&quot;: &quot;Practice Mode&quot;,
          &quot;description&quot;: &quot;Practice&quot;,
          &quot;value&quot;: false,
          &quot;settingType&quot;: 1
        },
        {
          &quot;name&quot;: &quot;Timeout&quot;,
          &quot;description&quot;: &quot;Timeout in Miliseconds&quot;,
          &quot;value&quot;: 30,
          &quot;settingType&quot;: 2
        }
      ],
      &quot;deviceControllers&quot;: [
        {
          &quot;deviceSettings&quot;: null
        }
      ]
    },
    &quot;message&quot;: &quot;Successful&quot;,
    &quot;requestId&quot;: &quot;a8fb1684-82da-4cad-a26b-191291590cde&quot;
  }
  </code></pre>
  <pre><code>// import com.fasterxml.jackson.databind.ObjectMapper; // version 2.11.1
  // import com.fasterxml.jackson.annotation.JsonProperty; // version 2.11.1
  /* ObjectMapper om = new ObjectMapper();
  Root root = om.readValue(myJsonString, Root.class); */
  public class DeviceController{
      @JsonProperty(&quot;deviceSettings&quot;) 
      public Object getDeviceSettings() { 
           return this.deviceSettings; } 
      public void setDeviceSettings(Object deviceSettings) { 
           this.deviceSettings = deviceSettings; } 
      Object deviceSettings;
  }
  
  public class Devices{
      @JsonProperty(&quot;id&quot;) 
      public String getId() { 
           return this.id; } 
      public void setId(String id) { 
           this.id = id; } 
      String id;
      @JsonProperty(&quot;name&quot;) 
      public String getName() { 
           return this.name; } 
      public void setName(String name) { 
           this.name = name; } 
      String name;
      @JsonProperty(&quot;description&quot;) 
      public String getDescription() { 
           return this.description; } 
      public void setDescription(String description) { 
           this.description = description; } 
      String description;
      @JsonProperty(&quot;deviceType&quot;) 
      public int getDeviceType() { 
           return this.deviceType; } 
      public void setDeviceType(int deviceType) { 
           this.deviceType = deviceType; } 
      int deviceType;
      @JsonProperty(&quot;deviceTypeName&quot;) 
      public String getDeviceTypeName() { 
           return this.deviceTypeName; } 
      public void setDeviceTypeName(String deviceTypeName) { 
           this.deviceTypeName = deviceTypeName; } 
      String deviceTypeName;
      @JsonProperty(&quot;version&quot;) 
      public String getVersion() { 
           return this.version; } 
      public void setVersion(String version) { 
           this.version = version; } 
      String version;
      @JsonProperty(&quot;deviceSettings&quot;) 
      public ArrayList&lt;DeviceSetting&gt; getDeviceSettings() { 
           return this.deviceSettings; } 
      public void setDeviceSettings(ArrayList&lt;DeviceSetting&gt; deviceSettings) { 
           this.deviceSettings = deviceSettings; } 
      ArrayList&lt;DeviceSetting&gt; deviceSettings;
      @JsonProperty(&quot;deviceControllers&quot;) 
      public ArrayList&lt;DeviceController&gt; getDeviceControllers() { 
           return this.deviceControllers; } 
      public void setDeviceControllers(ArrayList&lt;DeviceController&gt; deviceControllers) { 
           this.deviceControllers = deviceControllers; } 
      ArrayList&lt;DeviceController&gt; deviceControllers;
  }
  </code></pre>
  <pre><code>public class DeviceSetting{
      @JsonProperty(&quot;name&quot;) 
      public String getName() { 
           return this.name; } 
      public void setName(String name) { 
           this.name = name; } 
      String name;
      @JsonProperty(&quot;description&quot;) 
      public String getDescription() { 
           return this.description; } 
      public void setDescription(String description) { 
           this.description = description; } 
      String description;
      @JsonProperty(&quot;value&quot;) 
      public Object getValue() { 
           return this.value; } 
      public void setValue(Object value) { 
           this.value = value; } 
      Object value;
      @JsonProperty(&quot;settingType&quot;) 
      public int getSettingType() { 
           return this.settingType; } 
      public void setSettingType(int settingType) { 
           this.settingType = settingType; } 
      int settingType;
  }
  </code></pre>
  <pre><code>public class Root{
      @JsonProperty(&quot;devices&quot;) 
      public Devices getDevices() { 
           return this.devices; } 
      public void setDevices(Devices devices) { 
           this.devices = devices; } 
      Devices devices;
      @JsonProperty(&quot;message&quot;) 
      public String getMessage() { 
           return this.message; } 
      public void setMessage(String message) { 
           this.message = message; } 
      String message;
      @JsonProperty(&quot;requestId&quot;) 
      public String getRequestId() { 
           return this.requestId; } 
      public void setRequestId(String requestId) { 
           this.requestId = requestId; } 
      String requestId;
      public Root()
      {
        super();
      }
  }
  </code></pre>
  <p>I get the following exception message any advice would be really helpfull.</p>
  <blockquote>
  <p>com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.tap.web.pos.controller.TapComDeviceSettingController$Root: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)</p>
  </blockquote>
  <blockquote>
  <p>at [Source: {&quot;devices&quot;:{&quot;id&quot;:&quot;F0C4DE69-03FF-4E48-BD48-AD2918E3D43F&quot;,&quot;name&quot;:&quot;Stera&quot;,&quot;description&quot;:&quot;Stera Credit Card Terminal&quot;,&quot;deviceType&quot;:3,&quot;deviceTypeName&quot;:&quot;CreditCard&quot;,&quot;version&quot;:&quot;1.0.0&quot;,&quot;deviceSettings&quot;:[{&quot;name&quot;:&quot;COM Port&quot;,&quot;description&quot;:&quot;Port&quot;,&quot;value&quot;:&quot;COM1&quot;,&quot;settingType&quot;:0},{&quot;name&quot;:&quot;Speed&quot;,&quot;description&quot;:&quot;Speed&quot;,&quot;value&quot;:9600,&quot;settingType&quot;:2},{&quot;name&quot;:&quot;Data Lenght&quot;,&quot;description&quot;:&quot;Data Lenght&quot;,&quot;value&quot;:8,&quot;settingType&quot;:2},{&quot;name&quot;:&quot;Parity&quot;,&quot;description&quot;:&quot;Parity&quot;,&quot;value&quot;:0,&quot;settingType&quot;:2},{&quot;name&quot;:&quot;Stop Bit&quot;,&quot;description&quot;:&quot;Stop Bit&quot;,&quot;value&quot;:1,&quot;settingType&quot;:2},{&quot;name&quot;:&quot;Practice Mode&quot;,&quot;description&quot;:&quot;Practice&quot;,&quot;value&quot;:false,&quot;settingType&quot;:1},{&quot;name&quot;:&quot;Timeout&quot;,&quot;description&quot;:&quot;Timeout in Miliseconds&quot;,&quot;value&quot;:30,&quot;settingType&quot;:2}],&quot;deviceControllers&quot;:[{&quot;deviceSettings&quot;:null}]},&quot;message&quot;:&quot;Successful&quot;,&quot;requestId&quot;:&quot;6910b187-1aaa-4199-9ab6-2ce4512d61d7&quot;}; line: 1, column: 2]</p>
  </blockquote>