title: com.fasterxml.jackson.databind.exc.MismatchedInputException: Unexpected token (START_OBJECT), expected START_ARRAY:
body: <p>I am trying to save <code>SearchAvailableRidesRequestOffline</code> to android <code>Shared Preferences</code>. I need to <code>deserialise</code> the object to use it later on. While I try to <code>deserialise</code> it from <code>json</code>, I am getting this exception.  </p>
  
  <p><strong>IOException</strong></p>
  
  <pre><code>com.fasterxml.jackson.databind.exc.MismatchedInputException: Unexpected token (START_OBJECT), expected START_ARRAY: need JSON Array to contain As.WRAPPER_ARRAY type information for class com.mnox.webservices.core.ARequest
   at [Source: (String)"{
    "request" : {
       .....
          "filterType"[truncated 882 chars]; line: 2, column: 15] (through reference chain: com.mnox.paymentgateway.commons.support.offline.SearchAvailableRidesRequestOffline["request"])
  </code></pre>
  
  <p><strong>JSON</strong></p>
  
  <pre><code>{
    "request" : {
      //
      // SearchAvailableRidesRequest
      // Parameters
    },
    "concreateRequestClass" : "com.mnox.webservices.requests.v2.SearchAvailableRidesRequest",
    "currentActivity" : null,
    "maxLimitAllowed" : 1000,
    "priority" : 0,
    "requestType" : "mNoxSearch"
  }
  </code></pre>
  
  <p><strong>Java</strong></p>
  
  <pre><code>public class SearchAvailableRidesRequestOffline extends AOfflineRequest implements IModelRequestedController {
  
      public SearchAvailableRidesRequestOffline() {
      }
  
      public SearchAvailableRidesRequestOffline(SearchAvailableRidesRequest searchRequest) {
          super(searchRequest);
      }
  
      @Override
      public int getMaxLimitAllowed() {
          return 1000;
      }
  
      @Override
      public int getPriority() {
          return 0;
      }
  
      @Override
      public void onModelRequestCompleted(IModelRequestedController context, int modelIdentifier,
                                          Object modelData) {
  
      }
  
      @Override
      public RequestType getRequestType() {
          return RequestType.mNoxSearch;
      }
  
  
      @Override
      public Activity getCurrentActivity() {
          return null;
      }
  
      @Override
      public Class getConcreateRequestClass() { return SearchAvailableRidesRequest.class;} ;
  
  }
  public abstract class AOfflineRequest {
  
      public static enum RequestType { mNoxSearch, mNoxDriverCurrentLocation} ;
  
      private ARequest request;
      public AOfflineRequest(ARequest request) {
          this.request = request;
      }
      public void updatePreExecuteProgressBar() {
  
      }
  
      public void updatePostExecuteProgressBar() {
  
      }
  
      public abstract RequestType getRequestType() ;
      public abstract Class getConcreateRequestClass() ;
      public abstract int getMaxLimitAllowed();
      public abstract int getPriority();
  
      //
      // For gson
      //
      public AOfflineRequest() {
      }
      public ARequest getRequest() {
          return request;
      }
  }
  </code></pre>